iBatis入門--簡單使用

來源:互聯網
上載者:User

一、概念

Hibernate 和 Apache OJB :“一站式”ORM

Ibatis:一種“半 自動化”的 ORM 實現,也就是說ibatis 不會為程式員在運行期自動產生 SQL 執行。具體的 SQL 需要程式員編寫,然後通過映 射設定檔,將 SQL 所需的參數,以及返回的結果欄位對應到指定 POJO。

二、使用

構建 ibatis 基礎代碼
ibatis 基礎程式碼封裝括:

1. ibatis 配置SqlMapConfig.xml檔案 :

(1)、Settings 節點

參數 描述
cacheModelEnable 是否啟用SqlMapClient上的緩衝機制。建議設為"true"
enhancementEnable 是否針對POJO啟用位元組碼增強機制,避免java reflect的效能開銷
errorTracingEnabled 是否啟用錯誤記錄檔,開發期間可以開啟,方便調試
lazyLoadingEnalbed 是否啟用消極式載入
maxRequests 最大並發請求數(Statement 並發數)
maxTransactions 最大並發事務數
maxSessions 最大Session數,及最大的並發SqlMapclient數,必須介於maxTransactions和maxRequest之間

(2)、transactionManager 事物管理
(3)、dataSource 資料來源配置
(4)、sqlMap 用於包括SQL Map對應檔和其他的SQL Map設定檔。每個SqlMapClient對象使用的所有SQL Map對應檔都要在此聲明。對應檔作為stream resource從類路徑或URL讀入。您必須在這裡指定所有的SQL Map檔案。

2、實體類POJO。這個需要和資料庫的相對應。

3、對應檔map,通常放在sqlmap包下,實現具體的資料庫動作陳述式。主要有模組配置、緩衝配置、statement配置。使用最多的應該是此處的statement配置了,需要用的sql語句和參數都寫在這裡。

4、如何在代碼中使用,這才是最關鍵的。

在此先要搞清楚幾個比較核心的比較重要的概念:

(1)、XmlSqlMapClientBuilder,ibatis 2.0 之後版本新引入的組件, 用以替代 1.x 版本中的 XmlSqlMapBuilder。其作用是根據設定檔建立 SqlMapClient 執行個體。

(2)、SqlMapClient 是 ibatis 的核心組件, 提供資料操作的基礎平台。

SqlMapClient 可通過 XmlSqlMapClientBuilder 建立:
String resource ="com/ibatis/sample/SqlMapConfig.xml";

Reader reader; reader = Resources.getResourceAsReader(resource);

XmlSqlMapClientBuilder xmlBuilder = new XmlSqlMapClientBuilder();

SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader);

備忘:"com/ibatis/sample/SqlMapConfig.xml"指明了設定檔在 CLASSPATH 中的相對路徑。 XmlSqlMapClientBuilder 通過接受一個 Reader 類型的配置文 件控制代碼,根據配置參數,建立 SqlMapClient 執行個體。 SqlMapClient 提供了眾多資料操作方法。

5、SqlMapClient 基本操作樣本

見Ibatis官方手冊

6、學習體會

大三用java做資料庫課程設計的時候將所有的資料庫操作都寫在一個類裡,程式的耦合性很高,擴充性也不好。Ibatis是我第一次接觸的,感覺學起來很容易上手,自己也學著在Demo上試了一下,做了個簡單的登陸介面。學習ibatis的過程最重要的是理解他的工作原理和映射關係,還有就是結合webx開發,哪些檔案應該放置在哪層(通常是DAO層),弄清楚這些問題,在以後的開發中肯定也是很有協助的。

實踐中遇到的問題:

無法連結資料庫,無法下載資料庫驅動,把jdbc.mysql.mysql-connector包複製到tomcat下面的lib目錄中即可。當然要保證你的xml配置是正確的,我串連本地Mysql的時候配置如下:

<bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"     
        destroy-method="close">
        <property name="driverClassName"value="com.mysql.jdbc.Driver"/>
        <property name="url"value="jdbc:mysql://localhost:3306/bookmanager"/>
        <property name="username"value="root"/>
        <property name="password"value="admin"/>
</bean>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.