乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Spring整合Hibernate圖文步驟

       鷹皇軟件 2015-01-07

      工具:myeclipse9.0

      Spring版本:2.5.6

      Hibernate版本:3



      昨天花了一下午時間把Spring和Hibernate整合到了一起,今天做一個筆記。  

      首先建立java Project工程


      點擊Finish完成


      添加Hibernate和Spring所需要的jar包還有Mysql連接的jar包




      創(chuàng)建Dao層,Dao層實現,Model層,Service層



      DAO層代碼:IUserDao

      1. package org.zhy.demo.dao;  
      2.   
      3. import java.sql.SQLException;  
      4.   
      5. import org.zhy.demo.dao.model.UserInfo;  
      6. /** 
      7.  * DAO層簡單的增刪改查方法 
      8.  * @author Administrator 
      9.  * 
      10.  */  
      11. public interface IUserDao {  
      12.   
      13.     public void saveUser(UserInfo user) throws SQLException;  
      14.   
      15.     public void delUser(UserInfo user) throws SQLException;  
      16.   
      17.     public void editUsre(UserInfo user) throws SQLException;  
      18.   
      19.     public UserInfo getUserById(int id) throws SQLException;  
      20.   
      21. }  


      IUuserDao層實現(暫時空實現)


      1. package org.zhy.demo.dao.impl;  
      2.   
      3. import java.sql.SQLException;  
      4.   
      5. import org.zhy.demo.dao.IUserDao;  
      6. import org.zhy.demo.dao.model.UserInfo;  
      7.   
      8. /**  
      9.  * IUserDao實現,配置完Spring及Hibernate文件后實現此類  
      10.  * @author Administrator  
      11.  *  
      12.  */  
      13. public class IUserDaoImpl implements IUserDao {  
      14.   
      15.     @Override  
      16.     public void saveUser(UserInfo user) throws SQLException {  
      17.   
      18.     }  
      19.   
      20.     @Override  
      21.     public void delUser(UserInfo user) throws SQLException {  
      22.   
      23.     }  
      24.   
      25.     @Override  
      26.     public void editUsre(UserInfo user) throws SQLException {  
      27.   
      28.     }  
      29.   
      30.     @Override  
      31.     public UserInfo getUserById(int id) throws SQLException {  
      32.         return null;  
      33.     }  
      34.   
      35. }  


      Model代碼

      1. package org.zhy.demo.dao.model;  
      2.   
      3. import javax.persistence.Entity;  
      4. import javax.persistence.GeneratedValue;  
      5. import javax.persistence.Id;  
      6.   
      7. @Entity  
      8. public class UserInfo {  
      9.   
      10.       
      11.     private int id;  
      12.     private String name;  
      13.     private String title;  
      14.   
      15.     @Id  
      16.     @GeneratedValue  
      17.     public int getId() {  
      18.         return id;  
      19.     }  
      20.   
      21.     public void setId(int id) {  
      22.         this.id = id;  
      23.     }  
      24.   
      25.     public String getName() {  
      26.         return name;  
      27.     }  
      28.   
      29.     public void setName(String name) {  
      30.         this.name = name;  
      31.     }  
      32.   
      33.     public String getTitle() {  
      34.         return title;  
      35.     }  
      36.   
      37.     public void setTitle(String title) {  
      38.         this.title = title;  
      39.     }  
      40.   
      41. }  



      下面添加Spring配置文件

      在Src目錄下添加SpringContext.xml


      1. <?xml version="1.0" encoding="UTF-8"?>  
      2. <beans xmlns="http://www./schema/beans"  
      3.     xmlns:xsi="http://www./2001/XMLSchema-instance"  
      4.     xmlns:aop="http://www./schema/aop"  
      5.     xmlns:tx="http://www./schema/tx"  
      6.     xsi:schemaLocation="http://www./schema/beans  
      7.            http://www./schema/beans/spring-beans-2.5.xsd  
      8.            http://www./schema/aop http://www./schema/aop/spring-aop-2.5.xsd  
      9.            http://www./schema/tx http://www./schema/tx/spring-tx-2.5.xsd  
      10.            ">  
      11.     <aop:config></aop:config>  
      12.   
      13.     <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />  
      14.   
      15.     <bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
      16.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
      17.         <property name="url" value="jdbc:mysql://localhost/student"></property>  
      18.         <property name="username" value="root" />   
      19.         <property name="password" value="root" />   
      20.         <!-- 數據庫連接池保持的最小連接數 -->  
      21.         <property name="minIdle" value="5" />  
      22.         <!-- 數據庫連接池保持的最大連接數 -->   
      23.         <property name="maxIdle" value="30" />  
      24.         <!--  
      25.             當數據庫連接因為某種原因斷掉之后,再重新從連接池中拿另外一個連接時實際上這個連接可能  
      26.             已經無效,所以為了確保所拿到的連接全都有效需要在獲取連接,返回連接以及連接空閑時進行  
      27.             有效性驗證 下面3個設置為ture時進行驗證,默認為false  
      28.          -->  
      29.         <!-- 取得連接時是否進行有效性驗證 -->  
      30.         <property name="testOnBorrow" value="true" />  
      31.         <!-- 返回連接時是否進行有效性驗證 -->  
      32.         <property name="testOnReturn" value="true" />  
      33.         <!-- 連接空閑時是否進行有效性驗證 -->  
      34.         <property name="testWhileIdle" value="true" />  
      35.           
      36.     </bean>  
      37.       
      38.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
      39.         <property name="dataSource" ref="datasource" />  
      40.         <!-- 注意:我用的是Annotation的方式配置的Hibernate,這里的property的name是annotatedClasses -->  
      41.         <property name="annotatedClasses">  
      42.             <list>  
      43.                 <value>org.zhy.demo.dao.model.UserInfo</value>  
      44.             </list>  
      45.         </property>  
      46.         <property name="hibernateProperties">  
      47.             <props>  
      48.                 <!-- 設置Hibernate方言 -->  
      49.                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
      50.                 <!-- 是否打印sql -->  
      51.                 <prop key="hibernate.show_sql">true</prop>  
      52.                 <!-- 格式化sql -->  
      53.                 <prop key="hibernate.format_sql">true</prop>  
      54.                 <!-- 是否自動更新表 -->  
      55.                 <prop key="hibernate.hbm2ddl.auto">update</prop>  
      56.                 <prop key="hibernate.current_session_context_class">thread</prop>  
      57.                 <!-- 最大抓取深度,如果為0,則關閉默認的外連接抓取。建議值為0-3 -->  
      58.                 <prop key="hibernate.max_fetch_depth">1</prop>  
      59.                 <!-- 用于生成有助于調試的注釋信息,默認為關閉 -->  
      60.                 <prop key="hibernate.use_sql_comments">true</prop>  
      61.             </props>  
      62.         </property>  
      63.     </bean>  
      64.       
      65.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" >  
      66.         <property name="sessionFactory" ref="sessionFactory"></property>  
      67.     </bean>  
      68.       
      69.     <aop:config>  
      70.         <aop:pointcut id="txMethod" expression="execution(* org.zhy.demo.dao.impl.*DaoImpl.*(..))" />  
      71.         <aop:advisor advice-ref="txAdvice" pointcut-ref="txMethod"/>  
      72.     </aop:config>  
      73.     <!-- AOP切面聲明事務管理 -->  
      74.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
      75.         <tx:attributes>  
      76.             <tx:method name="save*" propagation="REQUIRED" /> <!-- 支持當前事務,如果執(zhí)行到save開頭的任何方法時沒有事務則開啟一個事務 這是最常見的方式-->  
      77.             <tx:method name="update*" propagation="REQUIRED" /><!-- 支持當前事務,如果執(zhí)行到save開頭的任何方法時沒有事務則開啟一個事務 這是最常見的方式-->  
      78.             <tx:method name="add*" propagation="REQUIRED" /><!-- 支持當前事務,如果執(zhí)行到save開頭的任何方法時沒有事務則開啟一個事務 這是最常見的方式-->  
      79.             <tx:method name="delete*" propagation="REQUIRED" /><!-- 支持當前事務,如果執(zhí)行到save開頭的任何方法時沒有事務則開啟一個事務 這是最常見的方式-->  
      80.             <tx:method name="find*" propagation="SUPPORTS" read-only="true"/> <!-- 支持當前事務,如果當前沒有事務,就以非事務方式執(zhí)行。只讀 -->  
      81.             <tx:method name="get*" propagation="SUPPORTS" read-only="true"/><!-- 支持當前事務,如果當前沒有事務,就以非事務方式執(zhí)行。只讀 -->  
      82.             <tx:method name="*" />  
      83.         </tx:attributes>  
      84.     </tx:advice>  
      85.       
      86.       
      87.     <bean name="userDao" class="org.zhy.demo.dao.impl.IUserDaoImpl" >  
      88.         <property name="sessionFactory" ref="sessionFactory"></property>  
      89.     </bean>  
      90.     <bean name="userService" class="org.zhy.demo.service.UserService" />  
      91.   
      92. </beans>  



      修改DAO實現類


      1. package org.zhy.demo.dao.impl;  
      2.   
      3. import java.sql.SQLException;  
      4.   
      5. import org.hibernate.SessionFactory;  
      6. import org.springframework.orm.hibernate3.HibernateTemplate;  
      7. import org.zhy.demo.dao.IUserDao;  
      8. import org.zhy.demo.dao.model.UserInfo;  
      9.   
      10. /** 
      11.  * IUserDao實現 
      12.  *  
      13.  * @author Administrator 
      14.  *  
      15.  */  
      16. public class IUserDaoImpl implements IUserDao {  
      17.   
      18.     private HibernateTemplate hibernateTemplate;  
      19.   
      20.     public void setSessionFactory(SessionFactory sessionFactory) {  
      21.         this.hibernateTemplate = new HibernateTemplate(sessionFactory);  
      22.     }  
      23.   
      24.     @Override  
      25.     public void saveUser(UserInfo user) throws SQLException {  
      26.         hibernateTemplate.save(user);  
      27.     }  
      28.   
      29.     @Override  
      30.     public void delUser(UserInfo user) throws SQLException {  
      31.         hibernateTemplate.delete(user);  
      32.     }  
      33.   
      34.     @Override  
      35.     public void editUsre(UserInfo user) throws SQLException {  
      36.         hibernateTemplate.update(user);  
      37.     }  
      38.   
      39.     @Override  
      40.     public UserInfo getUserById(int id) throws SQLException {  
      41.         UserInfo user = (UserInfo) hibernateTemplate.get(UserInfo.class, id);  
      42.         return user;  
      43.     }  
      44.   
      45. }  


      junit測試


      1. @Test  
      2. public void saveUserTest() throws SQLException{  
      3.     ApplicationContext context= new ClassPathXmlApplicationContext("/SpringContext.xml");  
      4.     UserService service =(UserService) context.getBean("userService");  
      5.       
      6.     UserInfo user = new UserInfo();  
      7.     user.setName("T`");  
      8.     user.setTitle("CSDN BLOG");  
      9.     service.addUserInfo(user);  
      10. }  



      項目源碼地址:http://download.csdn.net/detail/qq7342272/4539552

      源碼中的注釋及代碼是比較全的


        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多