Spring数据源配置之Hibernate

来源:互联网 发布:交换机的数据帖转发式 编辑:程序博客网 时间:2024/05/20 15:42

1.使用Hibernate在applicationContext.xml里面需要配置如下:

<!-- 配置数据源 --><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:3306/test"></property><property name="username" value="root"></property><property name="password" value="a111"></property></bean><!-- hibernate session factory --><bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop></props></property><property name="mappingResources"><array><value>com/hellojava/entity/Book.hbm.xml</value></array></property></bean><bean id="bookDao" class="com.hellojava.dao.BookDao"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 事务管理类 (管理是sessionFactory)--><bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 通知(调用save的加上事务管理) --><tx:advice transaction-manager="transactionManager" id="myTransactionManagerAdvice"><tx:attributes><!-- propagation 事务的传播机制 --><tx:method name="save" propagation="REQUIRED"/><tx:method name="update" propagation="REQUIRED"/><tx:method name="*delete*" propagation="REQUIRED"/></tx:attributes></tx:advice><!-- 事务配置(把事务的通知添加到DAO上) --><aop:config><aop:pointcut expression="execution(* com.hellojava.dao.*.*(..))" id="hibernateDaoPointCut"/><aop:advisor advice-ref="myTransactionManagerAdvice" pointcut-ref="hibernateDaoPointCut"/></aop:config>

2.业务层继承HibernateDaoSupport

this.getHibernateTemplate().save(... ...)
this.getHibernateTemplate().delete(... ...)
this.getHibernateTemplate().update(... ...)
this.getHibernateTemplate().get() ,如果使用load需要把懒加载关闭
this.getHibernateTemplate().loadAll(... ...)
通过以上方法实现

0 0
原创粉丝点击