对于经常用到Hibernate 进行DB操作,有一定的模式,在数据库的访问DAO接口的实现类DAOImpl中的某个方法内操作DB的开发步骤模型依次如下:
------------------------------------------------------------------------------------------------------------
事先建立hibernate的配置文件,即对应的XML(.hbm.xml)文件;
1,建立配置文件类 Configuration 对象; Configuration cfg = new Configuration().configure(); ==>
2,建立 SessionFactory 对象; SessionFactory sf=cfg.buildSessionFactory(); ==>
3,建立 Session 对象; Session s=sf.openSession(); ==>
4,建立事务处理 Transaction 对象; Transaction tr=s.beginTransaction(); ==>
5,建立 Query / SQLQuery 对象;
Query q=s.createQuery(hSQL语句); 或者SQLQuery q=s.createSQLQuery(SQL语句); ==>
6,建立 List 对象; List l=q.list(); ==>
7,建立 Iterator 对象; Iterator it=l.iterator(); ==>
8,循环处理结果; ==>
while(it.hasNext()){
//....work code...
}
9,提交事务 tr.commit(); ==>
10,关闭当前Session对象; s.close (sf.close看情况如果其他方法用到就不关) 完成;
------------------------------------------------------------------------------------------------------------
例如有如下有关用户User的操作,那么数据库表,ORM(hibernate),测试程序的关系大致如下:
1,xDB.yTable //xDB数据库的xTable表
2,Hibernate //ORM(完成对象到数据库关系映射代码/软件)之一
3,User.hbm.xml //ORM对应的配置XML文件
4,UserEntity //Java实体类对象
5,UserDAO //操作UserEntity的Java类接口,也即DB操作接口
6,UserDAOImpl //操作DAO接口的实现类
7,TestAppUser //测试程序
UserEntity <--------------------UserDAOImpl-------------------->xDB.yTable
ORM(hibernate,User.bhm.xml)
在 TestAppUser 中:
xxxDataBase.yyyTable
/\ |*\
|| *. 间
|| *. 接
|| *. 完
通过UserDAOImpl操作 *. 成
借ORM(hibernate,XML)完成映射 *.
|| *.
|| *.
|| *_\
\/
UserEntity <-------------------------------- TestAppUser
通过java常规代码操作
-------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
可见测试程序中,测试程序通过Java常规代码操作Java实体类对象 UserEntity,
DB操作接口的实现类 UserDAOImpl 用实体类 UserEntity 作为(参数)数据,借助hibernate完成数据库的操作,其中用ORM(hibernate)完成数据库表各字段和实体对象属性之间的映射关系,这样测试程序通过实体类UserEntity 间接完成了数据库的操作;