将hibernate的SessionFactory交给spring管理——东方标准(专注IT、服务中国)续……

来源:互联网 发布:ios软件开发是什么 编辑:程序博客网 时间:2024/05/17 01:06

前一段时间写过一篇:

struts+hibernate+spring详细示例——东方标准(专注IT、服务中国)

在那篇文章中,我是将Hibernate的SessionFactory单独写了一个工具类HibernateUtil……

今天我们把Spring的SessionFactory交给Spring的IoC容器来管理……

其实很简单

第一种方式:

hiberante.cfg.xml配置如下:

<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.hbm2ddl.auto">update</property>
  <property name="hibernate.dialect">
   org.hibernate.dialect.MySQLDialect
  </property>
  <property name="hibernate.show_sql">true</property>
  <mapping resource="com/oristand/hibernate/pojo/User.hbm.xml" />
 </session-factory>
</hibernate-configuration>
接着配置applicationContext-hibernate.xml

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
 <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
   <value>jdbc:mysql://localhost:3306/ssh</value>
  </property>
  <property name="username">
   <value>root</value>
  </property>
  <property name="password">
   <value>123456</value>
  </property>
 </bean>

 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref local="dataSource" />
  </property>
  <property name="configLocation">
       <value>classpath:hibernate.cfg.xml</value>
  </property>

 </bean>
</beans>

第二种方式,不要hiberante.cft.xml,直接在applicationContext-hibernate.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:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
 <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
   <value>jdbc:mysql://localhost:3306/ssh</value>
  </property>
  <property name="username">
   <value>root</value>
  </property>
  <property name="password">
   <value>123456</value>
  </property>
 </bean>

 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref local="dataSource" />
  </property>
  <property name="mappingResources">
   <list>
    <!--
     !这里填写hibernate的映射文件路径
    -->
    <value>com/oristand/hibernate/pojo/User.hbm.xml</value>
   </list>
  </property>
  <property name="hibernateProperties">
   <props>
    <!--
     配置Hibernate的方言
    -->
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    <!--
     输入由Hibernate生成的SQL语句,如果在hibernate.cfg.xml中也指定的话,会生成两条语句,在产品中最好关闭,即设为false
    -->
    <prop key="hibernate.show_sql">true</prop>
   </props>
  </property>
 </bean>
</beans>

0 0
原创粉丝点击