一直以来,我在使用SSH框架的时候经常会发现后者有疑虑到底使用hibernate的那种方法或者如何配置hibernate来操作数据库,经过
一段时间的学习下面我来总结一下,常用的dao层配置。
二、常用的hibernate操作dao
第一种,通过继承HibernateDaoSupport来操作
第二种,通过HibernateTemplate来操作
第三种,通过使用Hibernate的session来操作
第四种,直接写JDBC来实现数据库操作
三、四种常用方法介绍及配置
通过继承HibernateDaoSupport来操作
spring为Hibernate的Dao提供的工具类,其底层是通过HibernateTemplate来实现来数据库的操作,但我觉得使用它的时候需要向每个
Dao层注入sessionFactory感觉有点不方便,因为这样注解就不方便了,但使用的时候就不需要在Dao层里面写SessionFactory的set方法了
直接在配置文件中进行配置就可以了。可以看源码发现:
使用的配置:applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http:// http:// http:// http:// http:// http:// http://"> <!-- 配置连接池: --> <!-- 引入外部属性文件 --> <context:property-placeholder location="classpath:c3p0-db.properties"/> <!-- 配置c3p0数据源 --> <bean class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property value="${jdbc.driverClass}"></property> <property value="${jdbc.url}"></property> <property value="${jdbc.user}"></property> <property value="${jdbc.password}"></property> </bean> <!-- 配置hibernate的相关信息 --> <!-- 配置SessionFactory --> <bean class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!--配置数据源 注入连接池--> <property ref="dataSource"></property> <!-- 配置hibernate的其他属性 --> <property> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.connection.autocommit">false</prop> </props> </property> <!-- 配置hibernate的映射文件 --> <property> <list> <value>com/itwang/entity/User.hbm.xml</value> <value>com/itwang/entity/Category.hbm.xml</value> </list> </property> </bean> <!-- 事务管理 --> <!-- 配置一个事务管理器 --> <bean class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property ref="sessionFactory"></property> </bean> <!-- 开启注解事务 --> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- Dao的配置 =============================--> <!-- 用户的Dao --> <bean> <property ref="sessionFactory"></property> </bean> <!-- 一级分类的Dao --> <bean> <property ref="sessionFactory"></property> </bean> <!-- 二级分类的Dao --> <bean> <property ref="sessionFactory"></property> </bean> <!--商品的Dao --> <bean> <property ref="sessionFactory"></property> </bean> </beans>