溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iBATIS入門程序的示例分析

發(fā)布時間:2021-12-27 09:24:09 來源:億速云 閱讀:156 作者:小新 欄目:編程語言

小編給大家分享一下iBATIS入門程序的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

iBATIS入門程序第一步:author.java

package com.ibatis;   public class Author {       private int id;       private String name;       public int getId() {          return id;       }       public void setId(int id) {          this.id = id;       }       public String getName() {          return name;       }       public void setName(String name) {          this.name = name;       }   }

iBATIS入門程序第二步:author.xml

﹤?xml version="1.0" encoding="UTF-8" ?﹥   ﹤!DOCTYPE sqlMap   PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"   "http://www.ibatis.com/dtd/sql-map-2.dtd"﹥   ﹤sqlMap namespace="Author"﹥   ﹤!--模塊配置--﹥   ﹤!--設置本映射文件中的別名--﹥   ﹤typeAlias alias="author" type="com.ibatis.Author" /﹥   ﹤!--   ﹤cacheModel type="LRU" ﹥    設置緩存有效期,如果超出這個時間,則會清空緩存    ﹤flushInterval hours="24"﹥﹤/flushInterval﹥     指定執(zhí)行特定的statement時,清空緩存    ﹤flushOnExecute statement="updateAuthor"/﹥    SIZE:本cacheModel***容納數(shù)據(jù)對象的數(shù)量    ﹤property value="1000"/﹥   ﹤/cacheModel﹥   需要使用模塊配置,如:﹤select resultClass="author" cacheModel="authorCache"﹥   把記錄使用cacheModel"authorCache"進行緩存,以后程序再使用statement進行數(shù)據(jù)查詢,就直接   去緩存中取數(shù)據(jù),而不是去數(shù)據(jù)庫中取數(shù)據(jù)   --﹥   ﹤!--Statement配置--﹥       ﹤select resultClass="author"﹥    ﹤![CDATA[SELECT * FROM author]]﹥   ﹤/select﹥       ﹤update parameterClass="author"﹥    ﹤![CDATA[UPDATE author SET WHERE ﹥    ﹤/update﹥       ﹤delete parameterClass="author"﹥      delete from author WHERE    ﹤/delete﹥        ﹤insert parameterClass="author"﹥    ﹤![CDATA[INSERT INTO author(id,name) VALUES(#id#,#name#)]]﹥   ﹤/insert﹥   ﹤/sqlMap﹥

iBATIS入門程序第三步:SqlMapConfig.properties

driver=com.microsoft.jdbc.sqlserver.SQLServerDriver   url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=ibatis   username=sa   password=sa

iBATIS入門程序第四步:SqlMapConfig.xml

﹤?xml version="1.0" encoding="UTF-8" ?﹥   ﹤!DOCTYPE sqlMapConfig   PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"   "http://www.ibatis.com/dtd/sql-map-config-2.dtd"﹥   ﹤!-- Ibatis配置文件--﹥   ﹤sqlMapConfig﹥   ﹤!-- 加載連接數(shù)據(jù)庫屬性文件 --﹥   ﹤properties resource="com/ibatis/SqlMapConfig.properties"/﹥   ﹤!--   cacheModelsEnabled:是否啟動SqlMapClient的緩存機制。   enhancementEnabled:是否針對POJO啟用字節(jié)碼增加機制以提升geter/seter的調(diào)用效用,為延遲加載帶來了及大的性能提升。   lazyLoadingEnabled:是否啟用延遲加載機制。   maxRequests:***并大請求數(shù)。   maxSessions:***Session數(shù),即當前***允許的開發(fā)SqlMapClient數(shù)   maxTransactions:***并發(fā)事務數(shù)。      --﹥   ﹤settings   cacheModelsEnabled="true"  enhancementEnabled="true"  lazyLoadingEnabled="true"  maxRequests="32"  maxSessions="10"  maxTransactions="5"  useStatementNamespaces="false"  /﹥   ﹤!-- datasource --﹥   ﹤transactionManager type="JDBC" ﹥   ﹤dataSource type="SIMPLE"﹥   ﹤!--JDBC驅(qū)動--﹥   ﹤property name=JDBC.Driver value="${driver}"/﹥   ﹤!--數(shù)據(jù)庫URL--﹥   ﹤property value="${url}"/﹥   ﹤!--數(shù)據(jù)庫用戶名--﹥   ﹤property value="${username}"/﹥   ﹤!--數(shù)據(jù)庫密碼--﹥   ﹤property value="${password}"/﹥   ﹤!--不知道,在網(wǎng)站上查不出來,有時間再研究--﹥   ﹤property value="true" /﹥   ﹤!--數(shù)據(jù)庫連接池可維持的***容量--﹥   ﹤property value="10"/﹥   ﹤!--數(shù)據(jù)庫連接池中允許的可掛起連接數(shù)--﹥   ﹤property value="5"/﹥   ﹤!--數(shù)據(jù)庫連接池中,連接被某個任務所占用的***時間--﹥   ﹤property value="120000"/﹥   ﹤!--當線程想從連接池中獲取連接時,連接池中無可用連接,該參數(shù)設置線程所允許等待的最長時間--﹥   ﹤property value="500"/﹥   ﹤!--數(shù)據(jù)庫連接狀態(tài)檢查語句--﹥   ﹤property value="select 1 from author"/﹥   ﹤!--是否允許檢查連接狀態(tài)--﹥   ﹤property value="false"/﹥   ﹤!--對持續(xù)連接超過設定值的連接進行檢查--﹥   ﹤property value="1"/﹥   ﹤!--對空閑超過設定值的連接進行檢查--﹥   ﹤property value="1"/﹥   ﹤/dataSource﹥   ﹤/transactionManager﹥   ﹤!--加載SqlMap文件--﹥   ﹤sqlMap resource="com/ibatis/author.xml" /﹥   ﹤/sqlMapConfig﹥

iBATIS入門程序第五步:

package com.ibatis;   import java.io.IOException;   import java.io.Reader;   import com.ibatis.common.resources.Resources;   import com.ibatis.sqlmap.client.SqlMapClient;   import com.ibatis.sqlmap.client.SqlMapClientBuilder;   public class SqlMapConf {    //初始化SqlMapClient    private static SqlMapClient sqlmapclient;    static{     //定義ibatis配置文件的路徑     String resource="com/ibatis/SqlMapConfig.xml";     try {      //讀取ibatis配置文件      Reader reader=Resources.getResourceAsReader(resource);      //通過SqlMapClientBuilder創(chuàng)建SqlMapClient      sqlmapclient=SqlMapClientBuilder.buildSqlMapClient(reader);     } catch (IOException e) {      // TODO Auto-generated catch block      System.out.println("找不到SqlMapConfig.xml文件~~");     }    }    public static SqlMapClient getInstance(){     //返回sqlmapclient,SqlMapClient是ibatis的核心主建,提供數(shù)據(jù)操作的基礎平臺          return sqlmapclient;    }    /**     * SqlMapClient的另一種創(chuàng)建方式     * XmlSqlMapClientBuilder xmlbuilder=new XmlSqlMapClientBuilder();     * SqlMapClient sqlmapclient=xmlbuilder.builderSqlMap(reader);     * XmlSqlMapClientBuilder是ibatis2.0之后版本新引入的組件,用以取代1.X版本中的     * XmlSqlMapBuilder,其作用就是創(chuàng)建SqlMapClient。     */   }

iBATIS入門程序第六步:

package com.ibatis;   import java.sql.SQLException;   import java.util.List;   import java.util.*;   import com.ibatis.sqlmap.client.SqlMapClient;   /**    * ibatis的事務管理器,目前只支持三種:JDBC,JTA,EXTERNAL    * JDBC:通過傳統(tǒng)的JDBC CONNECTION.COMIT/rollback實現(xiàn)事務支持    * JTA:使用容器提供的JTA服務實現(xiàn)全局事務管理    * EXTERNAL:外部事務管理,如EJB中使用IBATIS,通過EJB的部署配置即可實現(xiàn)自動的事務管理機制    * 。此時IBATIS將把所有的事務委托給外部容器進行管理    */  public class IbatisClient {    private static SqlMapClient sqlmapclient=SqlMapConf.getInstance();    //根據(jù)主健ID修改NAME    public static void updateAuthor(int id,String name){     Author author=new Author();        author.setId(id);        author.setName(name);        try {         //事務開始,用的是JDBC的事務管理         sqlmapclient.startTransaction();      sqlmapclient.update("updateAuthor",author);      sqlmapclient.commitTransaction();     } catch (SQLException e) {      // TODO Auto-generated catch block      e.printStackTrace();      System.out.println("修改錯誤~~");     }     finally{      try {       sqlmapclient.endTransaction();      } catch (SQLException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }     }    }    //查詢所有的記錄,返回一個集合    public static List findAll(){     List list=null;     try {      sqlmapclient.startTransaction();      //0:設置從第幾條記錄開始      //1:設置顯示記錄記錄      //list=sqlmapclient.queryForList("getAllAuthor",null,0,1);      list=sqlmapclient.queryForList("getAllAuthor",null);      sqlmapclient.commitTransaction();     } catch (SQLException e) {      // TODO Auto-generated catch block      e.printStackTrace();      System.out.println("查詢錯誤~~");     }     finally{      try {       sqlmapclient.endTransaction();      } catch (SQLException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }     }     return list;    }    //添加操作    public static boolean insert(int id,String name){     boolean bool=false;     Author author=new Author();     author.setId(id);     author.setName(name);     try {      sqlmapclient.startTransaction();      sqlmapclient.insert("insertAuthor",author);      bool=true;      sqlmapclient.commitTransaction();     } catch (SQLException e) {      // TODO Auto-generated catch block      bool=false;      e.printStackTrace();      System.out.println("添加錯誤~~");     }     finally{      try {       sqlmapclient.endTransaction();      } catch (SQLException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }     }     return bool;    }    //刪除操作    public static boolean delete(int id){     boolean bool=false;     Author author=new Author();     author.setId(id);     try {      sqlmapclient.commitTransaction();      sqlmapclient.delete("deleteAuthor",author);      bool=true;      sqlmapclient.startTransaction();     } catch (SQLException e) {      // TODO Auto-generated catch block      bool=false;      e.printStackTrace();      System.out.println("刪除錯誤~~");     }     finally{      try {       sqlmapclient.endTransaction();      } catch (SQLException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }     }     return bool;    }       public static void main(String str[]){        //刪除        //boolean bool=IbatisClient.delete(3);        //添加        //boolean bool=IbatisClient.insert(3,"wanwu");        //修改        //IbatisClient.updateAuthor(3,"jj");        //查詢所有的記錄        List list=IbatisClient.findAll();        Iterator iterator=list.iterator();        while(iterator.hasNext()){         Author author=(Author)iterator.next();         System.out.println("﹥          System.out.println("﹥         }       }   }

看完了這篇文章,相信你對“iBATIS入門程序的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI