Spring 整合 Hibernate(注解方式)
2015-12-08 19:47
309 查看
spring整合Hibernate其实就是Spring来管理Hibernate的SessionFactory,以及配置事务的操作。
在Hibernate的配置文件中只有一个SessionFactory的节点,可以在这个节点内配置数据库的连接信息和映射文件。
1.而在Spring中,管理数据库连接用到的是dataSource这样一个bean,spring中它的连接类为org.springframework.jdbc.datasource.DriverManagerDataSource,在dataSource中配置数据库连接信息,也可以使用c3p0连接池来连接,需要引入c3p0的包,具体类为com.mchange.v2.c3p0.ComboPooledDataSource。
2.此外还需要一个sessionFactory的bean,用来配置Hibernate的属性,如hibernate日志输出和映射文件等。
3.事务处理方面需要配置一个transactionManager的bean,将sessionFactory注入进去。
4.如果是采用注解的方式来使用事务,还需要配置开启事务。
<
4000
pre class="java"><tx:annotation-driven transaction-manager="transactionManager"/>
ps:spring与hibernate的整合很容易出错,一般都是引入包问题,版本不兼容或包冲突等,要仔细分辨一下,一步步去尝试,
我这里用到的jar包有以下:
spring4.17的所有jar包(除spring-aspectJ)
hibernate-core-4.2.1.Final.jar
aopalliance-1.0.jar
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.org.aspectj.weaver-1.6.8.REALEASE.jar
commons-logging-1.1.3.jar
mysql-connector-java-5.0.8-bin.jar
在Hibernate的配置文件中只有一个SessionFactory的节点,可以在这个节点内配置数据库的连接信息和映射文件。
1.而在Spring中,管理数据库连接用到的是dataSource这样一个bean,spring中它的连接类为org.springframework.jdbc.datasource.DriverManagerDataSource,在dataSource中配置数据库连接信息,也可以使用c3p0连接池来连接,需要引入c3p0的包,具体类为com.mchange.v2.c3p0.ComboPooledDataSource。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost/tx_test"></property> <property name="username" value="root"></property> <property name="password" value="HEAVEN"></property> </bean>
2.此外还需要一个sessionFactory的bean,用来配置Hibernate的属性,如hibernate日志输出和映射文件等。
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>User.hbm.xml</value> </list> </property> </bean>
3.事务处理方面需要配置一个transactionManager的bean,将sessionFactory注入进去。
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
4.如果是采用注解的方式来使用事务,还需要配置开启事务。
<
4000
pre class="java"><tx:annotation-driven transaction-manager="transactionManager"/>
ps:spring与hibernate的整合很容易出错,一般都是引入包问题,版本不兼容或包冲突等,要仔细分辨一下,一步步去尝试,
我这里用到的jar包有以下:
spring4.17的所有jar包(除spring-aspectJ)
hibernate-core-4.2.1.Final.jar
aopalliance-1.0.jar
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.org.aspectj.weaver-1.6.8.REALEASE.jar
commons-logging-1.1.3.jar
mysql-connector-java-5.0.8-bin.jar
相关文章推荐
- Java常用数据库连接池【整理】
- 多行数据提交到Struts的ActionForm的List属性中
- Java中异或运算实现两个整数的交换以及其功能函数实现
- Java 对象特性知识点复习
- ognl.MethodFailedException异常解决方法(Struts2)
- 给Eclipse装上反编译器(eclipse反编译插件)
- java中Vector的用法是什么?
- java并发容器ConcurrentHashMap学习心得
- javaweb学习总结(九)—— 通过Servlet生成验证码图片
- [置顶] Struts2入门的入门------下载,配置,基本概念总结
- 【springmvc+mybatis项目实战】杰信商贸-17.货物修改+删除
- 【springmvc+mybatis项目实战】杰信商贸-18.附件分类基础表+数据字典
- 【springmvc+mybatis项目实战】杰信商贸-19.级联删除
- 【springmvc+mybatis项目实战】杰信商贸-20.合同货物数和附件数
- 【springmvc+mybatis项目实战】杰信商贸-21.合同总金额SQL
- 【springmvc+mybatis项目实战】杰信商贸-23.重点知识回顾
- 【springmvc+mybatis项目实战】杰信商贸-25.出货表打印
- 【springmvc+mybatis项目实战】杰信商贸-24.神奇的POI
- 【springmvc+mybatis项目实战】杰信商贸-26.出货表修饰+下载
- 【springmvc+mybatis项目实战】杰信商贸-27.POI由HSSF升级为XSSF