Ibatis使用知識(shí)總結(jié)

          1.  從官方網(wǎng)站下載,ibatis的jar及相關(guān)的文件,http://ibatis.apache.org/
          2 . 新建一個(gè)工程, 我們?nèi)绻M(jìn)行ibatis相關(guān)的操作, 就一個(gè)要導(dǎo)入ibatis-2.3.3.720.jar
          3 . 建立pojo與pojo.xml形成映射.
          4.  一般一個(gè)pojo對(duì)應(yīng)一個(gè)pojo.xml, 例如.User.java.與User.xml
          pojo的類最好實(shí)現(xiàn)java.io.Serializable接口, 以備應(yīng)用時(shí), 進(jìn)一步的擴(kuò)展, 還要提供一個(gè)缺省的構(gòu)造方法(空構(gòu)造方法)。
          5. ibatis的配置文件.SqlMapConfig.xml, 這個(gè)文件一般放到src下.
          <?xml version="1.0" encoding="UTF-8" >
          <!DOCTYPE sqlMapConfig     
              PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"     
              "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

          <sqlMapConfig>

            <!-- Configure a built-in transaction manager.  If you're using an
                 app server, you probably want to use its transaction manager
                 and a managed datasource --
                  <properties resource="dbconfig.properties"/>/*數(shù)據(jù)庫(kù)的驅(qū)動(dòng)配置文件,一般與SqlMapConfig.xml是同一級(jí)目錄*/
                                                            
            <transactionManager type="JDBC" commitRequired="false">
              <dataSource type="SIMPLE">
                <property name="JDBC.Driver" value="${driver}"/>
                <property name="JDBC.ConnectionURL" value="${url}"/>
                <property name="JDBC.Username" value="${user}"/>
                <property name="JDBC.Password" value="${password}"/>/*配置文件的Key*/
              </dataSource>
            </transactionManager>
            
           
            <sqlMap resource="com/lxit/test/LXGroup.xml"/>

            /*指定pojo的映射文件,  這句話一定要加上, 否則, 找不到配置文件,包名/類名.xml*/
          </sqlMapConfig>
          LXGroup.xml
          <?xml version="1.0" encoding="UTF-8" ?>

          <!DOCTYPE sqlMap     
              PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     
              "http://ibatis.apache.org/dtd/sql-map-2.dtd">

          <sqlMap namespace="LXGroup">

              <typeAlias alias="LXGroup" type="com.lxitedu.pojo.permission.LXGroup" />
               類型別名 , 為一個(gè)pojo類取一個(gè)別名, 以便在下面用時(shí)候, 直接用別名引用對(duì)象(上面的解釋)
              <resultMap class="LXGroup" id="paginationList">
                  <result property="groupId" column="ID" />
                  <result property="groupName" column="groupName" />
                  <result property="description" column="description" />
              </resultMap>
               數(shù)據(jù)返回類型,我用的是一張表 , id 與select 標(biāo)簽的id一致, 就可以指定返回是多個(gè)pojo
              <select id="userGroupRowCount" resultClass="int">
                  select count(*) from userGroup
              </select>
               我們可以, 根據(jù)自己的SQL查詢語(yǔ)句, 及傳入的參數(shù)來(lái)決定它的返回類型,
                 resutlClass="返回類型" parameterClass="傳入的參數(shù)類型"
              <select id="userGroupList" resultMap="paginationList">
                  select * from userGroup
               </select>
              <delete id="deleteUserGroup" parameterClass="String">
                  delete from userGroup where groupName=#value#
                      #value#由方法的傳入?yún)?shù)填充
               </delete>
              <select id="userGroup" parameterClass="String"
                  resultClass="LXGroup">
                  select ID as groupId,groupName as groupName,description as description from
                  userGroup where groupName=#value#
               </select>
              <insert id="addUserGroup" parameterClass="com.lxitedu.pojo.permission.LXGroup">
                  insert into userGroup(groupName,description)values
                  (#groupName#,## where
                  ID=#groupId#
               </update>description#)
                  <selectKey resultClass="int" keyProperty="groupId">
                      select LAST_INSERT_ID() as value
                </selectKey>(這是主鍵自動(dòng)增長(zhǎng))
              </insert>
              <update id="updateUserGroup" parameterClass="LXGroup">
                  update userGroup set groupName=#groupName#,description=#description
          </sqlMap>
          6. 這里所有配置文件都完成了
          之后就是得到SqlMapClient對(duì)象, 調(diào)用相應(yīng)的方法, 完成相應(yīng)操作
          private static SqlMapClient sqlMapper;
              public static synchronized SqlMapClient getSqlMapClientInstance()
              {  
                    if(sqlMapper==null)
                    {
                        try {
                            Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
                            sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
                            reader.close();
                          } catch (IOException e) {
                              e.printStackTrace();
                          }
                    }
                      return sqlMapper;
              }


                                   ibatis與spring的整合

          1. ibatis與spring整合, 我們要導(dǎo)入相應(yīng)的jar.commons-dbcp-1.2.jar,commons-pool-1.4.jar,spring2.5.5.jar,這些是Spring的jar
          2. 要想spring與ibatis整合起來(lái), 我們只需修改一下配置文件就可以了,如果成功之后, 我們就會(huì)發(fā)現(xiàn), 他會(huì)使的我們的程序越來(lái)越簡(jiǎn)單
          第一步:在SqlMapConfig.xml里 , 要?jiǎng)h除 連接數(shù)據(jù)庫(kù)驅(qū)動(dòng)。
          第二步:在ApplicationContext.xml里修改驅(qū)動(dòng)

              <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                  <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
                  <property name="ignoreResourceNotFound" value="true" />
                  <property name="locations">
                      <list>
                          <value>classpath:dbconfig.properties</value>
                      </list>
                  </property>
              </bean>
              <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
                  destroy-method="close">
                  <property name="driverClassName">
                      <value>${driver}</value>
                  </property>
                  <property name="url">
                      <value>${url}</value>
                  </property>
                  <property name="username">
                      <value>${user}</value>
                  </property>
                  <property name="password">
                      <value>${password}</value>
                  </property>
              </bean>
          第三步: 整合ibatis與spring
            <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
              <property name="configLocation" value="classpath:SqlMapConfig.xml"/>(src下)
              <property name="dataSource" ref="dataSource"/>
            </bean>

          第四步:修改實(shí)例對(duì)象方式
          如果是單獨(dú)的ibatis, 我們要通過(guò)讀取SqlMapConfig.xml來(lái)得到SqlMapConfig來(lái)得到SqlMapClient對(duì)象
          現(xiàn)在與spring整合之間, 我們只需要修改類的繼承關(guān)系就可以了, 一般繼承SqlMapClientDaoSupport
          this.getSqlMapClient()就可以實(shí)現(xiàn)得到數(shù)據(jù)庫(kù)的操作對(duì)象,簡(jiǎn)化了操作。
          第五步:在sqlmapconfig.xml里面我們只要寫映射pojo.xml的路徑就可以了。

          posted on 2009-11-12 17:00 飛熊 閱讀(660) 評(píng)論(0)  編輯  收藏 所屬分類: Ibatis

          <2009年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 宜兰市| 达孜县| 浦东新区| 贺兰县| 天柱县| 石城县| 都江堰市| 宁夏| 大埔县| 东辽县| 全椒县| 胶州市| 嘉峪关市| 桦甸市| 丽水市| 定远县| 利辛县| 鄂伦春自治旗| 平顶山市| 宜黄县| 藁城市| 罗平县| 漳州市| 肃北| 阆中市| 铜陵市| 轮台县| 祥云县| 滦平县| 砀山县| 邛崃市| 英超| 海林市| 招远市| 边坝县| 革吉县| 加查县| 青神县| 桂东县| 宜川县| 砚山县|