1. 程式人生 > >7.Spring整合Hibernate_1

7.Spring整合Hibernate_1

lec work cnblogs XML hiberna rop get res classpath

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 }

7.Spring整合Hibernate_1