Hibernate常用的六个接口Configuration、SessionFactory、Session、Transaction、Query、Criteria。
1. Configuration
Configuration是hibernate的核心配置类,用来管理hibernate.cfg.xml和*.hbm.xml文件。读取hibernate.cfg.xml文件,加载数据库驱动,用户名,密码,连接池。
2. SessionFactory
SessionFactory是一个重量级的类。通常一个数据库连接只创建一个SessionFactory对象。这个类由Configuration创建。通过它可以创建Session实例。
3.Session
Session一个实例代表与数据库的一次操作(当然一次操作可以是crud组合),由SessionFactory创建。Session是线程不同步的(不安全),因此要保证在同一线程中使用,可以用getCurrentSessiong()。
Session常用的几个方法(通过id操作)
a.保存一个对象(记录)—save方法
b.删除一个对象(记录)—delete方法
c.查询一个对象(记录)—get/load方法
* get方法 * * 采用的是立即加载,执行到这行代码的时候,就会马上发送SQL语句去查询。 * * 查询后返回是真实对象本身。 * * 查询一个找不到的对象的时候,返回null * * load方法 * * 采用的是延迟加载(lazy懒加载),执行到这行代码的时候,不会发送SQL语句,当真正使用这个对象的时候才会发送SQL语句。 * * 查询后返回的是代理对象。javassist-3.18.1-GA.jar 利用javassist技术产生的代理。 * * 查询一个找不到的对象的时候,返回ObjectNotFoundException
d.修改一个对象(记录)—update方法
e.保存或修改一个对象(记录)—saveOrUpdate
4.Transaction
Transaction主要用于事务管理,他是hibernate数据库事务管理接口,对底层的事务进行封装
a.commit() 提交相关联的session实例
b. rollback() 撤销事务操作
c.wasCommitted() 检查事务是否提交
5.Query
Query接口类型的对象可以对数据库操作,它可以使用Hql,Qbc,Qbe和原生SQL(native Sql)对数据库操作.官方推荐使用Hql语句。Query接口和Criteria接口非常相似。
6.Criteria
Criteria 完全是 面向对象的方式在进行数据查询,看到有sql语句的痕迹