http://www.imooc.com/video/7816
1.什么是ORM?为什么使用Hibernate?
对象关系映射;为了少写和底层数据库相关的sql语句,方便程序的维护、修改,提高跨平台性和可扩展性。Hibernate是Java领域内的一款技术成熟稳定的ORM框架
2.Hibernate开发的基本步骤?
(1)编写配置文档hibernate.cfg.xml
(2)编写实体类。注意:每一个实体类都要与数据库中的一张表一一对应,实体类的编写要遵循JavaBean的要求。
(3)生成对应实体类的映射文件并添加到配置文档中
(4)调用Hibernate API进行测试
3.什么是session?
类似于JDBC里面的connection对象。调用session操作数据库,实际上就是调用connection的各种API函数来实现的。
4.openSession与getCurrentSession的区别?
openSension每次都是创建新的session对象,而getCurrentSenssion使用单例模式,每次创建都是相同的对象。openSession在使用完毕后需要显式地关闭,而getCurrentSession在事务提交之后会自动关闭。
5.单表操作有哪些常用的方法?
增删改查对应使用session当中的save、delete、update、get/load方法
6.单表操作,查询一条记录时,get和load的区别?
get在使用的时候立即发送sql语句,并且获得的是实体类的对象类型,而load只有在使用具体对象的非主键属性的时候才会发送sql语句,而且返回的是一个代理对象。
单个记录查询get与load的区别
1.在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句,返回持久化对象(实体类的对象)。
2.load方法会在调用后返回一个代理对象,该代理对象只保存了实体对象的id,直到使用对象的非主键属性时才会发出sql语句。
3.查询数据库中不存在的数据时,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundExceptio