shenang博客技術(shù)文檔


          理論不懂就實(shí)踐,實(shí)踐不會(huì)就學(xué)理論!

          posts - 35,comments - 55,trackbacks - 0
           

          ibatis in Spring(簡(jiǎn)單配置)

                     (實(shí)現(xiàn)Springibaties的簡(jiǎn)單)

          這里我們重點(diǎn)探討Spring框架下的ibatis應(yīng)用,特別是在容器事務(wù)管理模式下的ibatis應(yīng)用開發(fā)。針對(duì)ibatisSpring配置文件如下:

           

          1Ibatis-Context.xml:

          (下面我將對(duì)本文檔進(jìn)行詳細(xì)說明)

          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

          "http://www.springframework.org/dtd/spring-beans.dtd">

           

          <beans>    

           <bean id="dataSource"  這個(gè)節(jié)點(diǎn)不用介紹了

             class="org.apache.commons.dbcp.BasicDataSource"

             destroy-method="close">

             <property name="driverClassName">

               <value>net.sourceforge.jtds.jdbc.Driver</value>

             </property>

             <property name="url">

               <value>jdbc:jtds:sqlserver://127.0.0.1:1433/Sample</value>

             </property>

             <property name="username">

               <value>test</value>

             </property>

             <property name="password">

               <value>changeit</value>

             </property>

           </bean>

           

          這里的sqlMapClient節(jié)點(diǎn)實(shí)際上配置了一個(gè)sqlMapClient的創(chuàng)

          建工廠類。 configLocation

          屬性配置了ibatis映射文件的名稱

           <beanid="sqlMapClient"           class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

           <property name="configLocation">        <value>SqlMapConfig.xml</value>

             </property>

           </bean>

           

          transactionManager節(jié)點(diǎn), 這里我們的transactionManager配置與之前JDBC示例中相同,都采用了DataSourceTransactionManager

          <bean id="transactionManager" 

          class="org.springframework.jdbc.datasource.DataSourceTransactio

          nManager">

                  <property name="dataSource"><ref

          local="dataSource"/></property>

              </bean>

              

           userDAO節(jié)點(diǎn)

          對(duì)應(yīng)的,UserDAO需要配置兩個(gè)屬性,sqlMapClientDataSource

          sqlMapClient將從指定的DataSource中獲取數(shù)據(jù)庫(kù)連接。

           <bean id="userDAO" class="net.xiaxin.dao.UserDAO">

             <property name="dataSource">

               <ref local="dataSource" />

             </property>

             <property name="sqlMapClient">

               <ref local="sqlMapClient" />

             </property>

           </bean>

           

          下面是事務(wù)管理

           <bean id="userDAOProxy"

           class="org.springframework.transaction.interceptor.TransactionPro

          xyFactoryBean">

           

             <property name="transactionManager">

               <ref bean="transactionManager" />

             </property>

           

             <property name="target">

               <ref local="userDAO" />

             </property>

           

             <property name="transactionAttributes">

               <props>

                 <prop key="insert*">PROPAGATION_REQUIRED</prop>

                 <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>

               </props>

             </property>

           </bean>

          </beans>

          2sqlMapConfig.xml:

          <sqlMapConfig>

           <sqlMap resource="net/xiaxin/dao/entity/user.xml"/>

          </sqlMapConfig>

          3net/xiaxin/dao/entity/user .xml

           

          <sqlMap namespace="User">

           <typeAlias alias="user" type="net.xiaxin.dao.entity.User" />

           

           <insert id="insertUser" parameterClass="user">

              INSERT INTO users ( username, password) VALUES ( #username#,

          #password# )

           </insert>

           </sqlMap>

          4UserDAO.java

           

          public class UserDAO extends SqlMapClientDaoSupport implements

          IUserDAO {

           

           public void insertUser(User user) {

              getSqlMapClientTemplate().update("insertUser", user);

           }

          }

          5User .java

          public class User {

           

           public Integer id;

           

           public String username; public String password;

          public Integer getId() {

             return id;

          }

          public void setId(Integer id) {

             this.id = id;

          }

          public String getPassword() {

             return password;

          }

          public void setPassword(String password) {

             this.password = password;

          }

          public String getUsername() {

             return username;

          }

          public void setUsername(String username) {

             this.username = username;

          }

          扼要

          6、測(cè)試代碼

          InputStream is = new FileInputStream("Ibatis-Context.xml");

          XmlBeanFactory factory = new XmlBeanFactory(is);

          IUserDAO userdao = (IUserDAO)factory.getBean("userDAOProxy");

           

          User user = new User();

          user.setUsername("Sofia");

          user.setPassword("mypass");

           

          userdao.insertUser(user);

          posted on 2009-03-24 13:26 重慶理工小子 閱讀(1170) 評(píng)論(0)  編輯  收藏 所屬分類: Spring2
          主站蜘蛛池模板: 寿宁县| 句容市| 荥经县| 澄迈县| 柳江县| 怀安县| 汉源县| 柳河县| 颍上县| 靖江市| 贺兰县| 景德镇市| 尖扎县| 大理市| 新竹市| 商洛市| 积石山| 揭东县| 孝感市| 石家庄市| 湄潭县| 菏泽市| 社会| 夏邑县| 武清区| 闵行区| 关岭| 和林格尔县| 和平县| 越西县| 仁怀市| 萨迦县| 固阳县| 大石桥市| 衡山县| 玉环县| 安化县| 磐石市| 合阳县| 特克斯县| 亚东县|