上一篇大致实现了Hibernate的功能,了解了基本配置,现在针对配置中出现的各种类进行一个学习。
一、Configuration
负责管理Hibernate的配置信息,包括:
1、Hibernate运行时的底层信息:数据库的URL,用户名,密码,JDBC驱动类,数据库方言,数据库连接池等(对应hibernate.cfg.xml)
2、持久化类与数据库表的映射关系(*.hbm.xml)
创建方式:Configuration conf = new Configuration().configure();configure()方法如果不带参数,则默认关联的是hibernate.cfg.xml;
当然其也可以带参数,eg:
File file = new File(“xxx.xml”);
Configuration conf = new Configuration().configure(file);则是传递指定名字的Xml文件。
二、SessionFactory接口
SessionFactory是针对单个数据库映射关系经过编译后的内存镜像,是线程安全的。其一旦被构造完毕,即被赋予特定的构造信
息;SessionFactory是创建session的工程。但是需要注意的是创建SessionFactory很消耗资源,所以一般情况下一个应用只初始化一
个SessionFactory对象。
在新版本中,MyEclipse添加了对Hibernate的支持,添加了支持后会自动生成一个HibernateSessionFactory.java,可以供用户
直接调用其中的静态方法getSession()创建session对象:Session s = HibernateSessionFactory.getSession();
三、Session接口
是应用程序与数据库之间交互操作的一个单线程对象,是Hibernate运作的中心,所有持久化对象必须在session管理下才可以
进行持久化操作。此对象生命周期很短。Session对象有一个一级缓存,这一点后面的学习中再详细介绍。
持久化类与Session关联起来之后就具有了持久化的能力。
Session类有很多方法:
取得持久化对象:get()、load();
持久化对象的CRUD:save()、update()、delete()......
开启事务:beginTransaction()
管理session的方法:isOpen()、flush()、clear()、close()等
四、Transaction
事务。代表一个原子操作,它具有数据库事务的概念,所有持久层的操作都应该在事务管理下进行。
Transaction trans = session.beginTransaction();
常用方法:
commit():提交相关联的session实例
rollback();撤销事务操作
wasCommitted():检查事务是否提交