zoukankan      html  css  js  c++  java
  • 7.Spring整合Hibernate_1

    Spring 整合 Hibernate

      1.Spring指定 database,给下面创建的 SessionFactory用

     1 <!-- !!!!!可以使用 @Resource 将 这个bean对象注入到DAO中,供DAO使用 !!!!! -->
     2 
     3     <!-- 这是将一些目标参数写死在value中,也可以现在配置文件中 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     4         destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> 
     5         </property> <property name="url"> <value>jdbc:mysql://localhost:3306/spring</value> 
     6         </property> <property name="username"> <value>root</value> </property> <property 
     7         name="password"> <value>root</value> </property> </bean> -->
     8 
     9 
    10     <!-- 使用配置文件的方式,将数据库的一些驱动信息,写到配置文件中 -->
    11     <bean
    12         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    13         <!-- 可以向想象得到,在 PropertyPlaceholderConfigurer 中 存在一个 setLocations(List or 
    14             Array) ,这些配置信息,就放在 locations中 -->
    15         <property name="locations">
    16             <!-- 让Spring 去 src 目录下去找 jdbc.properties 文件 -->
    17             <value>classpath:jdbc.properties</value>
    18         </property>
    19     </bean>
    20 
    21     <bean id="dataSource" destroy-method="close"
    22         class="org.apache.commons.dbcp.BasicDataSource">
    23 
    24         <!-- value 为 配置文件中 key 为 jdbc.driverClassName 的值 -->
    25         <property name="driverClassName" value="${jdbc.driverClassName}" />
    26         <property name="url" value="${jdbc.url}" />
    27         <property name="username" value="${jdbc.username}" />
    28         <property name="password" value="${jdbc.password}" />
    29     </bean>

      2.创建 SessionFactory ,然后注入给DAO去使用

     1 <!-- 往Spring容器中注入 sessionFactory对象(这个sessionFactory是Spring修改过的),
     2          往sessionFactory 中注入 dataSource 
     3          和 annotatedClasses(实体对象)
     4          和 hibernateProperties(hibernate配置信息)
     5          这三者相当于 hibernate.cfg.xml 这个 hibernate 的配置文件-->
     6 <!-- 那么 只需要往DAO中注入sessionFactory ,那么就和 hibernate一样  生成session,操作实体-->
     7 
     8     <bean id="sessionFactory"
     9         class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    10         <property name="dataSource" ref="dataSource" />
    11         <property name="annotatedClasses">
    12             <list>
    13                 <value>com.bjsxt.model.User</value>
    14             </list>
    15         </property>
    16         <property name="hibernateProperties">
    17             <props>
    18                 <prop key=" hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    19                 <prop key="hibernate.show_sql">true</prop>
    20             </props>
    21         </property>
    22     </bean>
    23 
    24 </beans>

      3.往DAO中注入SessionFactory

     1 @Component("userDAO") 
     2 public class UserDAOImpl implements UserDAO{
     3     private SessionFactory sessionFactory;
     4     
     5     public SessionFactory getSessionFactory() {
     6         return sessionFactory;
     7     }
     8     
     9     //在DAO中 注入 SessionFactory
    10     @Resource
    11     public void setSessionFactory(SessionFactory sessionFactory) {
    12         this.sessionFactory = sessionFactory;
    13     }
    14 
    15     @Override
    16     public void save(User user) {
    17         Session session = sessionFactory.openSession();
    18         session.beginTransaction();
    19         session.save(user);
    20         session.getTransaction().commit();
    21         System.out.println(sessionFactory.getClass());
    22         System.out.println("a user saved");
    23     }
    24     
    25     
    26 }
  • 相关阅读:
    Binary Tree Maximum Path Sum
    ZigZag Conversion
    Longest Common Prefix
    Reverse Linked List II
    Populating Next Right Pointers in Each Node
    Populating Next Right Pointers in Each Node II
    Rotate List
    Path Sum II
    [Leetcode]-- Gray Code
    Subsets II
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7399403.html
Copyright © 2011-2022 走看看