标签:提交 延迟 实例化 事务控制 otf 功能 面向 null ssi
GET和load区别:
相同点:都是通过主键值来查询当前条数据;
不同点: 1、get是立即查询,load是延迟查询; get是用或者不用,反正先查询出来; load是用到的时候才去查询数据,不用就不查;
2、如果主键值不存在,get返回null; load返回ObjectNotFoundException异常;
3、load是代理查询,如果没有找到查询的数据,返回一个异常信息;
hibernate中实体bean的状态
1、新建态(瞬时态) 实体对象实例化了,但没有跟session产生任何关系;跟数据库表记录没有任何关系;
2、持久态 : 实体已经被session操作了 ,表示当前实体bean跟数据库表中的行记录一一对应; 只要实体在持久态的状态,任何对实体中属性的改变,hiberante都会认为,你发起了一个update修改命令;
3、游离态(托管态) : session.close()关闭后的实体的状态; 根据数据表的行记录没有关系了。。
hibernate跟jdbc的区别:
相同点: 都是完成数据持久化功能的;
不同点: 1、jdbc是java语言提供访问数据库的一个规范api; hibernate是一个全自动的orm(对象关系映射)型持久层框架;
2、jdbc事务是自动提交;hibernate中事务是手动提交;
3、hibernate的底层也是jdbc;
4、hibernate的检索方式(hql、qbc)都是面向对象的查询语言,不用写sql语句; hibernate框架会自动把这些查询语言转化成sql语句去执行;
5、hibernate增删查改简洁,强大的缓存提升了hibernate的性能; 扩展作业: 用户表(编号,用户名,密码); 使用jdbc批量插入N条数据; 使用hiberante批量插入N条数据; 注意事务控制, (N条sql)中,让其中两个主键重复;看N个sql是否一起成功,还是部分成功。
标签:提交 延迟 实例化 事务控制 otf 功能 面向 null ssi
原文地址:http://www.cnblogs.com/ziranfengwei/p/7056240.html