我的SSH项目之旅(9.问题补充)

2008年12月21日 JAVA 暂无评论

错误信息收集:

hibernate表一对一的时候

Exception in thread "main" org.springframework.orm.hibernate3.HibernateSystemException: attempted to assign id from null one-to-one property: person; nested exception is org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property: person

org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property: person

原因是外键的问题,idcard依赖于personpid 在插入的时候       i.setPerson(p);

    p.setIdcard(i);

 

如果tomcat启动看不到错误信息 log4j

 

 

 

乱码解决:

new String(request.getParamerter(“name”).getBytes(“ISO8859-1”))

 

 

数据源的配置

 

      <!-- 定义数据源Bean,使用C3P0数据源实现 -->

      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

           <!-- 指定连接数据库的驱动 -->

           <property name="driverClass" value="com.mysql.jdbc.Driver"/>

           <!-- 指定连接数据库的URL -->

           <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/reg_login"/>

           <!-- 指定连接数据库的用户名 -->

           <property
name="user" value="root"/>

           <!-- 指定连接数据库的密码 -->

           <property name="password" value="123456"/>

           <!-- 指定连接数据库连接池的最大连接数 -->

           <property name="maxPoolSize" value="20"/>

           <!-- 指定连接数据库连接池的最小连接数 -->

           <property name="minPoolSize" value="1"/>

           <!-- 指定连接数据库连接池的初始化连接数 -->

           <property name="initialPoolSize" value="1"/>

           <!-- 指定连接数据库连接池的连接的最大空闲时间 -->

           <property name="maxIdleTime" value="20"/>

      </bean>

 

hibernateTemplate get load方法的区别

 

1)当记录不存在时候,get方法返回null,load方法产生异常

2load方法可以返回实体的代理类,get方法则返回真是的实体类

3load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据,而get方法仅仅在内部缓存中进行数据查找,如果没有发现数据則将越过二级缓存,直接调用SQL查询数据库。

 () 也许别人把数据库中的数据修改了,load如何在缓存中找到了数据,则不会再访问数据库,而get则会返回最新数据。

Fileupload组件的使用

首先, 下载两个开发包: commons-fileupload commons-io(这个在应用commons-fileupload时会用到).

这两个开发包(jar文件)

http://commons.apache.org/fileupload/

http://commons.apache.org/io/

java.lang.UnsupportedClassVersionError: Bad version number in .class file这个异常是JDK版本编译引起的,只要重新编译就行了

文件上传的格式

enctype="multipart/form-data"

对表的设计一定要准确,不然改来改去坏了程序开发的进度

对原有表的修改语句

删除

alter table kind drop total;

修改

alter table food add total float;

修改表名

alter table gindex rename qindex;

返回上一页操作

<a href="#" onclick="history.back()">返回上一页</a>

 

网页颜色渐变代码

<body style="filter:progid:DXImageTransform.Microsoft.Gradient

(startColorStr='#FFFFFF', endCol

orStr='#3568CC', gradientType='1')">

</body>

 

 

 

 

 

 

 

 

Java执行doc命令

String command = "cmd /c mysqldump -u root -p123456 restaurant > e:\fantlam.sql";

Process process = Runtime.getRuntime().exec(command);

 

Mysql数据备份命令

mysqldump -u root -p123456 restaurant > e:\fantlam.sql

Mysql数据恢复命令

mysql -uroot -p123456 restaurant < e:fantlam.sql

 

 

 

 

java.lang.NoClassDefFoundError: net/sf/cglib/beans/BulkBeanException

解决办法:
添加cglib-2.1.jar

新的学习笔记:

关于hibernate lazy

load支持lazy 返回代理类 get不会

集合属性设置lazy=extra比较智能 比如查询set.size()的时候会发出count()hql而不会全部查询,因此提高效率

class标签上的lazy只会影响到普通属性 对集合 关联不影响

给我留言