您好,登錄后才能下訂單哦!
小編給大家分享一下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è)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。