hibernate学习笔记
1.阻抗不匹配(模型不匹配)
关系模型与对象模型之间不能完全的对应起来
解决方法:
a.使用JDBC手工转换
b.使用ORM(Object Relation Mapping对象关系映射)框架来解决,主流的ORM框架有hibernate等
2.关于使用hibernate时Domain Object限制:
默认的构造方法——必须的
有无意义的标识符id(主键)——可选的
非final的,对懒加载有影响——可选的
对象模型有getter和setter方法
3.hibernate的session
执行一些数据库操作语句
4.Class
class方法能获取整个class属性,方法等
5.session中save和persist区别
save在没开启事物的时候会执行数据操作,persist在没开启事物的时候不会执行数据操作。persist相当于重新请求
6.hibernate中对象的状态
a.瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象爱
b.持久(persistent):数据库中有数据与之对应,事物没有提交,当前与session有关联,并且关联的session没有关闭,事物没有提交;持久对象状态发生改变,在提交事物时会影响到数据库(hibernate能检测到)
c.脱管(detached):数据库中有数据与之对应,但当前没有session与之管理;托管对象状态发生改变,hibernate不能检测
判断是瞬时状态还是托管状态常常通过id是否有值进行判断