http://hibernatesynch.sourceforge.net/
hibernate 需要的jar包
包说明:
1、c3p0-0.9.1.jar C3PO是一个数据库连接池,Hibernate可以配置为使用C3PO连接池。如果你准备用这个连接池,就需要这个jar包。
2、cglib-2.2.jar
CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包
asm.jar ASM字节码库 如果使用“cglib”则必要
asm-attrs.jar ASM字节码库 如果使用“cglib”则必要
cglib.jar CGLIB 字节码解释器 如果使用“cglib”则必要
3、commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。
4、dom4j.jar Hibernate用它来读写配置文件。
5、ehcache.jar EHCache缓存
6、Hibernate3.jar 核心库
7、jta.jar 标准的JTA API
8、
proxool.jar | Proxool JDBC连接池 |
最小必要包为antlr.jar,cglib.jar,asm.jar, asm-attrs.jar, commons-collections.jar, commons-loggins.jar ,encache.jar, dom4j.jar,log4j.jar,jta.jar
antlr.jar:语言转换工具,hibernate用他将hql语句转换为sql语句
下面是一个demo:
工程图如下:
2、hibernate.cfg.xml
3、HibernateHelper.java
4、UserDao.java
5、User.hbm.xml
6、User.java
7、TestUserDao.java
说明:
Hibernate 的<generator class="native"></generator>的不同属性含义
由Hibernate根据底层数据库自行判断采用identity、hilo、sequence
其中一种作为主键生成方式。
<property name="hibernate.current_session_context_class">thread</property>
1、本地事务
<property name="hibernate.current_session_context_class">thread</property>
2、全局事务
<property name="hibernate.current_session_context_class">jta</property>
这样就解决了!
如果在获得session 对象时使用的是 session = sessionFactory.getCurrentSession();
则此处可以改成 session = sessionFactory.openSession();
这样就不用修改上面的配置文件了