1. 程式人生 > >iBatis框架使用 4步曲

iBatis框架使用 4步曲

rgb 聲明 ransac 條件 track 刪除 原則 tracking eas

iBatis是一款使用方便的數據訪問工具,也可作為數據持久層的框架。和ORM框架(如Hibernate)將數據庫表直接映射為Java對象相比。iBatis是將SQL語句映射為Java對象。

相對於全自己主動SQLHibernateiBatis同意你對SQL有全然控制權,能夠視為半自己主動的數據訪問工具。
iBatis的最大長處是簡便,輕量級,僅需iBatis的一個jar和數據庫的驅動就可以執行,並且使用iBatis僅需掌握SQL和XML的使用方法就可以,而不像Hibernate那樣須要配置對象間的關系。學習iBatis的過程要比Hibernate快非常多,在項目中,若人員水平不大一致時。使用iBatis取代Hibernate作為數據訪問工具能夠有效提升開發效率。


無論是iBatis還是Hibernate。都作為訪問數據庫的工具,它們必定基於JDBC而來,目的解決是JDBC程序開發的繁瑣性和代碼的冗余性(如載入驅動,建立連接,初始化語句對象,運行數據庫操作。返回結果,關閉各個對象這一反復且無技術含量的過程)。


iBatis框架是Java持久層開發框架,說白了就是前人寫了一部分代碼(針對數據庫操作),我們要做的就是再次開發,拿來框架直接使用。

我們自己開發時,dao層的sql語句都是寫死在程序中的。假設查詢條件改變什麽的都須要改動sql語句,這樣就得去改動原代碼,違背了開發原則中的開閉原則。有沒有一種實現讓sql不再寫死在程序裏,iBatis框架就能夠使sql文活起來。

iBatis是一個開源的項目。有興趣的能夠去看看那些元老級的人物是怎麽將封裝的框架。本文旨在介紹它的使用。


第一步:搭建好開發環境

所謂的搭建好開發環境就是拷貝iBatis的jar包到我們的項目中。這樣我們就能夠使用框架中的相關類啦。

因為iBatis是數據庫方面的操作,所以還有加入數據庫方面的jar包,我用的是oracle的數據庫,所以得到oracle的安裝文件夾以下去找鏈接數據庫的ojdbc6.jar


第二步:編寫實體類和dao層接口及實現

這裏須要做的就是將數據庫的表相應封裝成對象實體。定義Dao層的接口和實現,接口的詳細實現這裏不須要寫,僅僅須要把類準備出來,把接口準備出來就能夠拉。


第三步:拷貝xml文件

將iBatis中的兩個xml文件復制到項目中(下載的iBatis資料中會有相應的jar包和簡單的樣例,樣例中有xml文件),一個是SqlMapConfig.xml是完畢數據庫配置的文件。還有一個是實體類相應的xml文件,本文以User.xml為例。

須要註意的是這兩個文件所放的位置,一般都是將SqlMapConfig.xml文件復制到項目的根文件夾以下。放在src下。實體類相應的xml文件跟相應的實體放在一塊即可了。

一個系統中就僅僅有一個SqlMapConfig.xml文件。文件的名稱能夠更改,是數據庫配置文件,文件內容參考例如以下:

[html] view plaincopyprint?技術分享技術分享
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE sqlMapConfig
  3. PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
  4. "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
  5. <sqlMapConfig>
  6. <transactionManager type="JDBC" commitRequired="false">
  7. <dataSource type="SIMPLE">
  8. <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
  9. <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:Orl"/>
  10. <property name="JDBC.Username" value="scott"/>
  11. <property name="JDBC.Password" value="tiger"/>
  12. </dataSource>
  13. </transactionManager>
  14. <sqlMap resource="com/ibatis/bean/User.xml"/>
  15. </sqlMapConfig>


實體類的配置文件則有多個。是和實體類相應的。

內容參考例如以下:

[html] view plaincopyprint?技術分享技術分享
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE sqlMap
  3. PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
  4. "http://ibatis.apache.org/dtd/sql-map-2.dtd">
  5. <sqlMap>
  6. <!--起別名-->
  7. <typeAlias alias="UserType" type="com.ibatis.bean.User"></typeAlias>
  8. <!--insert操作,parameterClass為參數的類型-->
  9. <insert id="insertUserID" parameterClass="UserType">
  10. insert into t_user (
  11. username,
  12. userpswd)
  13. values (
  14. #username#, #userpswd#
  15. )
  16. </insert>
  17. <delete id="deleteUser" parameterClass="java.lang.String">
  18. delete from t_user where username=#username#
  19. </delete>
  20. </sqlMap>

第四步:編寫dao層接口實現

用了框架後。實現類中就沒有sql語句了。在上面參考代碼中看到,sql語句都配置到相應的實體類相應的配置文件裏拉,這樣實現類的代碼就會變得非常easy。例如以下:

技術分享


這樣就能夠實現對User的加入和刪除了,假設此時還不放心。能夠加入個測試類測試一次。

使用框架,前提配置工作一定要做好。主要在配置文件上面。一定要細致。



版權聲明:本文為博主原創文章。未經博主同意不得轉載。

iBatis框架使用 4步曲