shenang博客技術文檔


          理論不懂就實踐,實踐不會就學理論!

          posts - 35,comments - 55,trackbacks - 0
           

          整合SPingibatis
                
          學習了一段時間的Spring了,感覺對于Spring的理解還是不夠深刻,還有太多的地方需要學習,因為前段時間學過ibatisstruts,在網上也看到很多關于三者整合的文章,下面是我自己寫的一個關于spingibatis整合的一個案例

          對于像我一樣的新手,大家可以共同學習,有錯誤的地方請給予指教,謝謝!

          對于高手,請給予改正意見。

          1、建立一個WEB工程

          需要尋入的包:

          里面有部份是struts需要的包,故不需要導入

          2、建立表

          我用的mysql

          共三個字段,id,name,sex

          3、建立一個model

          User.java

          package com.ctgusec.zhupan.model;

          import java.io.Serializable;

          public class User implements Serializable {
              
          // private static final long serialVersionUID = 1L;

              
          private Integer id;

              
          private String name;

              
          private Integer sex;

              
          public User() {
              }


              
          public Integer getId() {
                  
          return id;
              }


              
          public void setId(Integer id) {
                  
          this.id = id;
              }


              
          public String getName() {
                  
          return name;
              }


              
          public void setName(String name) {
                  
          this.name = name;
              }


              
          public Integer getSex() {
                  
          return sex;
              }


              
          public void setSex(Integer sex) {
                  
          this.sex = sex;
              }


          }
           

          4、寫ibatis的二個配置文件SqlmapConfig.xml User.xml
          SqlmapConfig.xml

          1 <?xml version = "1.0" encoding = "UTF-8"?>  
          2  <!DOCTYPE sqlMapConfig 
          3     PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
          4     "http://www.ibatis.com/dtd/sql-map-config-2.dtd"  >  
          5  <sqlMapConfig >
          6  <sqlMap  resource  = "com/ctgusec/zhupan/maps/User.xml"/>  
          7  </sqlMapConfig>  
          8 
          9 
          User.xml
           1<?xml version = "1.0" encoding = "UTF-8"?>
           2<!DOCTYPE sqlMap 
           3    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" 
           4    "http://www.ibatis.com/dtd/sql-map-2.dtd">
           5<sqlMap namespace="User">   
           6    <typeAlias alias="user" type="com.ctgusec.zhupan.model.User"/>
           7            <insert id="insertUser" parameterClass="user">
           8        INSERT INTO t_user(id,name,sex) VALUES (#id#,#name#,#sex# )
           9    </insert>
          10    </sqlMap>
          11
          12


          可以看出比ibatis獨立配置少了很多東西,因為在ibatis里面的連接數據庫配置,現在需寫在另一個配置文件里,在下面的配置文件中將看到。

          5、寫IUserDAO.java 和 UserDao.java
          UserDao.java
           1package com.ctgusec.zhupan.dao;
           2import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
           3import com.ctgusec.zhupan.interf.IUserDao;
           4import com.ctgusec.zhupan.model.User;
           5
           6public class UserDAO extends SqlMapClientDaoSupport implements IUserDao
           7      public void insertUser(User user) 
           8        getSqlMapClientTemplate().insert("insertUser", user); 
           9      }
             
          10    }
             
          11
          12
          IUserDAO.java
          package com.ctgusec.zhupan.interf;

          import com.ctgusec.zhupan.model.User;

          public interface IUserDao {
              
              
          public void insertUser(User user);//插入用戶

          }

          這是對插入用戶的方法的實現,通過inserUser(User user)方法,向數據庫中插入一條數據。
          getSqlMapClientTemplate().insert("insertUser", user); 這里是使用了SPring的模版,這個方法是對ibatis里面的對數據庫操作的封裝。
          6、寫Ibatis-Context.xml
           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
           3 "http://www.springframework.org/dtd/spring-beans.dtd">
           4 
           5 <beans>  
           6     <bean id="dataSource"
           7         class="org.apache.commons.dbcp.BasicDataSource"
           8         destroy-method="close">
           9         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
          10         <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
          11         <property name="username" value="root"/>
          12         <property name="password" value="200520"/>
          13     </bean>
          14     <bean id="sqlMapClient"
          15         class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
          16         <property name="configLocation">
          17             <value>/com/ctgusec/zhupan/maps/SqlMapConfig.xml</value>
          18         </property>
          19     </bean>
          20 
          21     <bean id="transactionManager"
          22         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          23         <property name="dataSource">
          24             <ref local="dataSource" />
          25         </property>
          26     </bean>
          27 
          28     <bean id="userDAO" class="com.ctgusec.zhupan.dao.UserDAO">
          29         <property name="dataSource">
          30             <ref local="dataSource" />
          31         </property>
          32         <property name="sqlMapClient">
          33             <ref local="sqlMapClient" />
          34         </property>
          35     </bean>
          36 
          37     <bean id="userDAOProxy"
          38         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
          39         <property name="transactionManager">
          40             <ref bean="transactionManager" />
          41         </property>
          42 
          43         <property name="target">
          44             <ref local="userDAO" />
          45         </property>
          46 
          47         <property name="transactionAttributes">
          48             <props>
          49                 <prop key="insert*">PROPAGATION_REQUIRED</prop>
          50                 <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
          51             </props>
          52         </property>
          53     </bean>
          54 </beans>
          55 
          上面的代碼大家一定不陌生,這就是Spring的配置文件,這里不再多說,如果不明白,請查看相關書籍。
          7、寫一個測試文件SpringTest.java
           1 package com.ctgusec.zhupan;
           2 
           3 import org.springframework.context.ApplicationContext;
           4 import org.springframework.context.support.ClassPathXmlApplicationContext;
           5 
           6 import com.ctgusec.zhupan.interf.IUserDao;
           7 import com.ctgusec.zhupan.model.User;
           8 import com.opensymphony.xwork2.ActionSupport;
           9 
          10 public class SpringTest extends ActionSupport{
          11     public static void main(String[] args) {
          12         
          13         ApplicationContext context = new ClassPathXmlApplicationContext(
          14                 "Ibatis-Context.xml");
          15         IUserDao dao=(IUserDao)context.getBean("userDAOProxy");
          16         User user=new User();
          17         user.setId(123456789);
          18         user.setName("love");
          19         user.setSex(1);
          20         dao.insertUser(user);
          21     }
          22 }
          查看數據庫,插入成功。

           

          通過此篇文章,我希望跟我一樣初學Spring的同志一直學習,一起進步,有什么錯誤,請指正.



          posted on 2009-03-25 11:52 重慶理工小子 閱讀(594) 評論(0)  編輯  收藏 所屬分類: Spring2Ibaties框架 、技術整合
          主站蜘蛛池模板: 四子王旗| 陆良县| 永修县| 政和县| 伊宁县| 乌兰察布市| 沁源县| 修水县| 龙岩市| 璧山县| 光泽县| 吉安县| 静海县| 泸定县| 京山县| 肥乡县| 安仁县| 太保市| 西平县| 宜宾市| 仪征市| 栖霞市| 囊谦县| 左云县| 莲花县| 常德市| 阜康市| 手机| 松原市| 吴江市| 额敏县| 迁安市| 大同市| 淮北市| 武川县| 伊宁市| 那曲县| 宁乡县| 阜平县| 印江| 梁山县|