最近抽空學(xué)習(xí)了Mybatis這個(gè)框架,在學(xué)習(xí)的過(guò)程中也找了很多的文章,個(gè)人感覺(jué)官網(wǎng)上的東西太多太雜,不適合許多希望一步步快速上手的朋友們,當(dāng)然覺(jué)得查閱問(wèn)題的時(shí)候可以直接通過(guò)官網(wǎng)找還比較快或者是StackOverflow,鑒于此原因把自己想把自己學(xué)習(xí)過(guò)程中的經(jīng)驗(yàn)留作筆記以供分享參考之用,盡量少繞彎路。因?yàn)橄胫苯恿私釳ybatis的使用方式,而網(wǎng)上有許多學(xué)習(xí)文章是Mybatis與Spring的結(jié)合范例,或者說(shuō)直接在Web Project項(xiàng)目下創(chuàng)立的范例,感覺(jué)對(duì)于只是純粹想了解那個(gè)東西怎么使用的朋友應(yīng)該不需要那么多附加的條件,所以本系列中直接用最簡(jiǎn)單的Java Project作范例演示。

  什么是Mybatis,前身iBatis(個(gè)人沒(méi)用過(guò),所以沒(méi)什么發(fā)言權(quán)),引述官網(wǎng)的原意來(lái)說(shuō),Mybatis是支持普通SQL查詢,可以更簡(jiǎn)單直接的操作SQL,存儲(chǔ)過(guò)程和高級(jí)映射的一種優(yōu)秀的持久層框架,使用它基本可以消除所有的JDBC大麥和參數(shù)的手工設(shè)置以及結(jié)果集的檢索,其實(shí)個(gè)人使用下來(lái)感覺(jué),其實(shí)主要工作都是在配置XML或者注解上,然后將接口和Java的POJO(普通Java對(duì)象映射成數(shù)據(jù)庫(kù)的記錄),個(gè)人沒(méi)用過(guò)Java的Hb,所以對(duì)于兩者之間的差異性也沒(méi)權(quán)限發(fā)表意見(jiàn),我相信各個(gè)事物的產(chǎn)生總有它自己的目的。

  這段時(shí)間學(xué)習(xí)下來(lái),其實(shí)對(duì)Mybatis來(lái)說(shuō)主要的過(guò)程無(wú)法是以下幾步

  1. 從XML配置文件中獲取SessionFactory,然后由SessionFactory產(chǎn)生相應(yīng)的Session。

  2. 是用Session對(duì)象對(duì)業(yè)務(wù)數(shù)據(jù)完成相應(yīng)的CRUD操作(增刪改查)和相應(yīng)的事務(wù)控制。

  3. 使用完畢后關(guān)閉相應(yīng)的Session,以免過(guò)度占用資源

  4. 使用配置相應(yīng)的Mapper xml文件進(jìn)行業(yè)務(wù)實(shí)體的JavaBean與數(shù)據(jù)庫(kù)表之間做相應(yīng)的Map操作

     

      戰(zhàn)前準(zhǔn)備:

  1. 開(kāi)發(fā)環(huán)境Eclipse JavaEE IDE,JDK 1.6,數(shù)據(jù)庫(kù)mysql 5.5

  2. 下載相應(yīng)Jar包,以備后用

    mybatis-3.2.3.zip 解壓后拿出 mybatis-3.2.3.jar,=> 下載地址: http://code.google.com/p/mybatis/ (Mybatis核心包)

    mybatis-generator-core-1.3.1.jar => 下載地址: http://code.google.com/p/mybatis/wiki/Generator (Mybatis自動(dòng)生成配置文件包)

    mysql-connector-java-5.1.26-bin.jar => 下載地址:http://dev.mysql.com/downloads/connector/j/ (Mysql 的jdbc驅(qū)動(dòng)包)

  

  接下來(lái)大家可以再Eclipse下面建一個(gè)名為MybatisDemo的Java Project項(xiàng)目,按照如下圖中所示新建相應(yīng)的包結(jié)構(gòu)和文件夾結(jié)構(gòu),其中config與mapper分別為文件夾,

  包david.mybatis.demo與包david.mybatis.model下分別存放相應(yīng)的demo運(yùn)行程序與Javabean對(duì)象,lib文件夾下存放剛剛下載的那幾個(gè)第三方j(luò)ar包。

            

  

  建完下面的目錄,我們可以添加相應(yīng)的Jar包,如下圖

  

   完成后,執(zhí)行下面SQL,建立DEMO所需的表結(jié)構(gòu),分別有3張表,Visitor(訪問(wèn)者表),Website(網(wǎng)站表),Channel(頻道表) 

建表SQL

 

       所有這些都完成后,我們就要開(kāi)始動(dòng)手啦~

 

       就像開(kāi)頭說(shuō)的,Mybatis的所有配置都源于一份XML配置文件,我們需要在config文件夾下,新建名為mybatis_demo_config.xml的配置文件,這一份東西就是我們后面所需要操作的核心之一。

       在配置這個(gè)文件千萬(wàn)要注意<configuration>節(jié)點(diǎn)內(nèi)的元素都是有層級(jí)順序的要求的,不能夠隨意更換次序,否則在加載xml配置文件的時(shí)候會(huì)出現(xiàn)異常而導(dǎo)致后續(xù)操作不成功。

具體的節(jié)點(diǎn)說(shuō)明大家可以查看http://mybatis.github.io/mybatis-3/zh/configuration.html#,這里只說(shuō)比較常用的節(jié)點(diǎn),typeAliases,environments,mappers。

       1. typeAliases => 別名節(jié)點(diǎn),可以通過(guò)設(shè)置這個(gè)節(jié)點(diǎn)的屬性,這樣配置文件中其他需要實(shí)體名字的地方都可以使用此別名而不是完全限定名,例如 <typeAlias type="david.mybatis.model.Visitor" alias="Visitor" />

       2. environments => 環(huán)境節(jié)點(diǎn),配置數(shù)據(jù)連接相關(guān)的信息

       3. mappers => 配置SQL映射語(yǔ)句。

       最簡(jiǎn)單的配置如下:

XML配置

在包david.mybatis.demo下面新建一個(gè)名為MyBatisUtils類,里面存放獲取SqlSession與關(guān)閉SqlSession的方法,提煉出來(lái)方便多次復(fù)用。

MybatisUtils類

在包david.mybatis.model下面新建一個(gè)名為Visitor的類,用來(lái)作相應(yīng)的OR Mapping。

Visit類

在包david.mybatis.demo下面新建一個(gè)VisitorMapper.xml,用來(lái)映射相應(yīng)SQL語(yǔ)句。

這里要注意namespace=>david.mybatis.demo.IVisitorOperation一定要與對(duì)應(yīng)這個(gè)包下面的實(shí)際文件名,IVisitorOperation否則無(wú)法成功加載相應(yīng)的映射文件

VisitorMapper配置

接下來(lái)運(yùn)行下面的程序

基本查詢

 

一個(gè)最簡(jiǎn)單的執(zhí)行結(jié)果就出來(lái)啦

 

這算是Mybatis系列的HelloWord,下回會(huì)講述關(guān)于使用接口的方式進(jìn)行相應(yīng)操作。



如果你覺(jué)得這篇文章對(duì)你有用,歡迎推薦[推薦]

如果你覺(jué)得文章內(nèi)有錯(cuò)誤歡迎指出^0^~

如果您想轉(zhuǎn)載本博客,請(qǐng)注明出處

如果您對(duì)本文有意見(jiàn)或者建議,歡迎留言

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文鏈接,否則作者保留追究法律責(zé)任的權(quán)利。