<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

    接口測(cè)試從零開始5_教你如何使用ibatis

    1、創(chuàng)建pojo

      public classPingJia

      2、創(chuàng)建Dao接口

      publicinterfaceIPingJiaDao

      3、使用ibatis編寫實(shí)現(xiàn)類

      1)通過pom依賴引入ibatis

    <dependency>
         <groupId>com.ibatis</groupId>
         <artifactId>ibatis</artifactId>
         <version>2.3.4.726</version>
    </dependency>

      2)編寫實(shí)現(xiàn)類,引入ibatisSqlMapClientResource

    importcom.ibatis.common.resources.Resources;
    importcom.ibatis.sqlmap.client.SqlMapClient;
    importcom.ibatis.sqlmap.client.SqlMapClientBuilder;

      3)配置POJO類的IBatis配置文件pingjia.ibatis.xm

    <?xmlversion="1.0"encoding="UTF-8"?>

    <!DOCTYPEsqlMapPUBLIC"-//ibatis.apache.org//DTDSQLMap 2.0//EN"

           "http://ibatis.apache.org/dtd/sql-map-2.dtd">

    <sqlMapnamespace="PingJiaDao">

      <!--命名空間,在此空間外要引用此空間的元素,則需要加上命名空間名-->

       <typeAliasalias="pingJia"type="com.koubei.testlearnning.pojo.PingJia"/> 

       <!--實(shí)體別名, 如果有用到全名的地方,可以用別名代替,受命名空間約束-->

       <resultMapclass="com.koubei.testlearnning.pojo.PingJia"id="PingJia">

          <resultcolumn="pingjiaid"property="pingJiaId"/>

          <resultcolumn="pingjiacontent"property="pingJiaContent"/>

          <resultcolumn="storeid"property="storeId"/>

          <resultcolumn="pingjiatype"property="pingJiaType"/>

          <resultcolumn="pingjiadate"property="pingJiaDate"/>

       </resultMap>

       <!--結(jié)果集映射,-->

       <deleteid="delete"parameterClass="java.lang.String">

       <!--刪除操作-->

           delete frompingjiawherepingjiaid=#pingJiaId#

       </delete>

       <insertid="insert"parameterClass="pingJia">

       <!--插入操作, 對(duì)于自增主鍵的表,插入可以不配置插入的主鍵列,否則是必須的-->

           insert

           intopingjia(pingjiaid,pingjiacontent,storeid,

          pingjiatype,pingjiadate)

           values(#pingJiaId#, #pingJiaContent#, #storeId#, #pingJiaType#,#pingJiaDate#)

       </insert>

       <updateid="update">

       <!--更新操作-->

           update task_info

          <dynamicprepend="set">

       <!--動(dòng)態(tài)sqlprepend表示鏈接關(guān)鍵字,property表示屬性值-->

          <isNotNullprepend=" , "property="pingJiaContent">

                 pingjiacontent=

                  #excutePerson#

           </isNotNull>

              <isNotNullprepend=" , "property="storeid">

                 storeid=#storeId#

              </isNotNull>

              <isNotNullprepend=" , "property="pingJiaType">

                 pingjiatype

                  =#pingJiaType#

           </isNotNull>

              <isNotNullprepend=" , "property="pingjiadate">

                 pingjiadate

                  =#pingJiaDate#

                   </isNotNull>

          </dynamic>

           wherepingjiaid=#pingJiaId#

       </update>

       <selectid="getPingJiaList"parameterClass="java.lang.String"resultMap="PingJia">

       <!--查詢操作,插入語句入?yún)⑼ㄟ^parameterClass="類別名"來設(shè)定,可以設(shè)定類別名,也可以設(shè)定為map

       也可以設(shè)定為iBatis支持的原生類型(比如stringintlong等,  map是最強(qiáng)大的入?yún)⒎绞剑魏稳雲(yún)⒎绞?/span>

       都可以轉(zhuǎn)換為這種入?yún)⒎绞剑驗(yàn)?/span>iBatis僅接受一個(gè)入?yún)ⅲ?dāng)幾個(gè)參數(shù)分布在不同對(duì)象中的時(shí)候,將這些對(duì)象

       的屬性(或者對(duì)象本身put)到map中,然后一次傳遞給sql語句-->

          sselect* frompingjiawhere storeId = #storeId#

       </select>

          <selectid="getGoodPingNum"parameterClass="java.lang.String">

          sselectcount(1) frompingjiawhere storeId = #storeId# andpingjiatype=1

       </select>

          <selectid="getPingJiaNum"parameterClass="java.lang.String">

          sselectcount(1) frompingjiawhere storeId = #storeId#

       </select>

    </sqlMap>

     4)配置SqlMapConfig配置文件

    <?xmlversion="1.0"encoding="UTF-8"?>

    <!DOCTYPEsqlMapConfig

       PUBLIC"-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"

       "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

    <sqlMapConfig>

    <propertiesresource="dbcpconfig.properties"/>

    <settingscacheModelsEnabled="false"enhancementEnabled="true"lazyLoadingEnabled="false"errorTracingEnabled="true"maxRequests="400"maxSessions="40"

       maxTransactions="32"useStatementNamespaces="true"/>  

            <!--   

            1. cacheModelsEnabled是否啟動(dòng)sqlMapClient上的緩存機(jī)制;  

            2. enhancementEnabled是否針對(duì)POJO啟用字節(jié)碼增強(qiáng)機(jī)制以提升getter/setter的調(diào)用效能,  

                   避免使用Java Reflect所帶來的性能開銷,同時(shí)也為Lazy Loading帶來了極大的性能提升;  

            3. errorTracingEnabled是否啟用錯(cuò)誤日志;在開發(fā)期間建議設(shè)為“true”以方便調(diào)試  

            4. lazyLoadingEnabled是否啟動(dòng)延遲加載機(jī)制  

            5. maxRequests最大并發(fā)請(qǐng)求數(shù)(Statement并發(fā)數(shù))  

            5. maxTransactions最大并發(fā)事務(wù)  

            6. maxSessions最大Session數(shù),即當(dāng)前最大允許的并發(fā)sqlMapClient數(shù)(介于maxRequestsmaxTransactions之間)  

            7. useStatementNamespaces是否使用Statement命名空間(為true時(shí),需要追加命名空間)  

         -->

    <transactionManagertype="JDBC"> 

          <dataSourcetype="SIMPLE">

          <!--dataSource從屬于transactionManager節(jié)點(diǎn),用于設(shè)定ibatis運(yùn)行期使用的DataSource屬性  

                type屬性:dataSource節(jié)點(diǎn)的type屬性指定了dataSource的實(shí)現(xiàn)類型,指定了數(shù)據(jù)源的鏈接類型,也有3種類型(SIMPLE,DBCP,JNDI)

                1. SIMPLE   SIMPLEibatis內(nèi)置的dataSource實(shí)現(xiàn),其中實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)連接池機(jī)制,對(duì)應(yīng)ibatis實(shí)現(xiàn)類為  

                    com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory  

                2. DBCP:基于ApacheDBCP連接池組件實(shí)現(xiàn)的DataSource封裝,當(dāng)無容器提供DataSource服務(wù)時(shí),  

                    建議使用該選項(xiàng),對(duì)應(yīng)ibatis實(shí)現(xiàn)類為com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory  

                3. JNDI:使用J2EE容器提供的DataSource實(shí)現(xiàn),DataSource將通過指定的JNDI Name從容器中獲取。  

                   對(duì)應(yīng)ibatis實(shí)現(xiàn)類為com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory  

           --> 

      <propertyname="JDBC.Driver"value="${driverClassName}"/>

       <propertyname="JDBC.ConnectionURL"value="${url}"/>

       <propertyname="JDBC.Username"value="${username}"/>

       <propertyname="JDBC.Password"value="${password}"/>

       <propertyname="Pool.MaximumActiveConnections"value="10"/><!--連接池維持的最大容量--> 

       <propertyname="Pool.MaximumIdleConnections"value="5"/><!--連接池允許掛起的最大連接--> 

       <propertyname="Pool.MaximumCheckoutTime"value="120000"/><!--連接被某個(gè)任務(wù)所允許占用的最大時(shí)間--> 

       <propertyname="TimeToWait"value="500"/><!--線程允許等待的最大時(shí)間--> 

           </dataSource> 

       </transactionManager> 

        <!--指定映射文件的位置,配置中可出現(xiàn)多個(gè)sqlMap節(jié)點(diǎn),以指定項(xiàng)目?jī)?nèi)所有映射文件--> 

       <sqlMapresource="conf/sqlmap/pingjia.ibatis.xml"/>

    </sqlMapConfig>

      5)讀取配置文件

    static{

          try{

               Reader reader = Resources.getResourceAsReader("conf/testlearnning.sqlmapconfig.xml");

              sqlMap= SqlMapClientBuilder.buildSqlMapClient(reader);

           }catch(Exception e) {

               e.printStackTrace();

    }

      6)增刪改查相關(guān)操作

    @Override

    publicbooleaninsert(PingJia pingJia) {

       booleanflag =false;

       try{

           sqlMap.insert("PingJiaDao.insert", pingJia);

            flag =true;

        }catch(SQLException e) {

            e.printStackTrace();

        }

       returnflag;

    }

     

    posted on 2011-12-13 15:50 順其自然EVO 閱讀(559) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 一级黄色免费毛片| 成人国产网站v片免费观看| 2017亚洲男人天堂一| 亚洲一久久久久久久久| 黄色免费网址大全| 国产午夜无码片免费| 免费看搞黄视频网站| 免费在线看v网址| 日本一道综合久久aⅴ免费| 免费人成视频x8x8入口| 国产亚洲精品xxx| 亚洲乱码日产精品BD在线观看| 亚洲欧美国产欧美色欲| h在线看免费视频网站男男| 无码国产精品一区二区免费16| 一个人免费观看www视频在线| 免费大片黄手机在线观看| 国产亚洲精品a在线观看| 日本久久久久亚洲中字幕| 亚洲熟女乱色一区二区三区| 51午夜精品免费视频| 精品熟女少妇av免费久久| 欧洲美熟女乱又伦免费视频| 亚洲综合AV在线在线播放| 亚洲噜噜噜噜噜影院在线播放| 国产精品久久久久久亚洲小说 | 污污视频网站免费观看| a级毛片高清免费视频就| 久久久久久久久免费看无码| 国产综合精品久久亚洲| 亚洲人成电影网站| 一级人做人爰a全过程免费视频| 18禁无遮挡无码国产免费网站| 免费国产小视频在线观看| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲av无码片vr一区二区三区 | 成人自慰女黄网站免费大全 | 色欲A∨无码蜜臀AV免费播| 日本一线a视频免费观看| 亚洲天天做日日做天天欢毛片| 美女被爆羞羞网站在免费观看|