您的位置:首页 > 编程语言 > Java开发

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。

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: