错误信息收集:
做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依赖于person的pid 在插入的时候 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方法产生异常
(2)load方法可以返回实体的代理类,get方法则返回真是的实体类
(3)load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据,而get方法仅仅在内部缓存中进行数据查找,如果没有发现数据則将越过二级缓存,直接调用SQL查询数据库。
(4) 也许别人把数据库中的数据修改了,load如何在缓存中找到了数据,则不会再访问数据库,而get则会返回最新数据。
Fileupload组件的使用
首先, 下载两个开发包: commons-fileupload 和 commons-io(这个在应用commons-fileupload时会用到).
这两个开发包(jar文件)
http://commons.apache.org/fileupload/
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="#" οnclick="history.back()">返回上一页</a>
网页颜色渐变代码
<body style="filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#FFFFFF', endColorStr='#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只会影响到普通属性 对集合 关联不影响