1. 程式人生 > >Mybatis學習的一些細節

Mybatis學習的一些細節

最近幾天一直在學習mybatis,看了一些原始碼,本文講述mybatis的一些基本配置和基本的用法和注意到一些細節。個人時間和精力有限,本文屬於流水賬型別,不成體系,算是自己的個人筆記吧。

1.本案例所使用的資料庫為mysql,資料庫的指令碼程式碼如下:

 
 

2.建立實體類

 
 

3.去官網下載mybatis ,匯入相應的jar包。

建立配置檔案configuration.xml

 
 

這個配置檔案,需要一個物件跟資料庫互動,這個物件是sqlsession,下面講述sqlsession.

Sqlsession的作用:

    1. 向sql 語句傳入引數
    1. 執行 sql語句
    1. 獲取執行sql語句的結果
    1. 事物的控制

如何獲取Sqlsession:

    1. 通過獲取配置檔案獲取資料庫連線相關資訊
    1. 通過配置資訊構建 sqlSessionFactory 的物件
    1. 通過sqlsessionFactory大家資料庫會話。
 
 

3.SQL基本配置、執行

Message.xml檔案配置:

 
 

其中使用到了ONGL表示式:

WX20161225-220301@2x.png

WX20161225-220208@2x.png

在configuration.xml中配置

 
 

執行:

 
 

由於mybatis的sql語句寫在了xml中,導致除錯比較困難,不能打斷點。這時需要日誌去調。

下載log4j jar包,並配置log4j.propertites

 
 

log的級別:

log.debug

log.info

log.warm

log.error

級別從小到大,也就是og4j.rootLogger=DEBUG;可以輸出所有的日誌型別;og4j.rootLogger=info ,新航道雅思班只能夠輸出 info,warm ,error

要想mybtis 顯示日誌,必須log4j.rootLogger=DEBUG;
專案中配置了log4j,mybatis 會自動應用log4j

mybatis sql配置檔案常用的標籤如下:

WX20161226-213750@2x.png

mapper檔案下的標籤含義:

nameSpace 標籤區分可以用來區分sql檔案

parameterType 將會傳入這條語句的引數類的完全限定名或別名。這個屬性是可選的,因為 MyBatis 可以通過 TypeHandler 推斷出具體傳入語句的引數,預設值為 unset。

resultMap 外部 resultMap 的命名引用。結果集的對映是 MyBatis 最強大的特性,對其有一個很好的理解的話,許多複雜對映的情形都能迎刃而解。使用 resultMap 或 resultType,但不能同時使用。

java實體內Command包含了一個List contentList集合。

 
 

在mapper中配置:

 
 

CommandContent.xml配置

 
 

經過這樣的配置,在DAO層執行,就可以取出command中的屬性。

六.取自增長 key

 
 

七、一點細節

 
 

另外:

敲黑板劃重點,mybatis的所有知識都可以在官網上都有,建議看十遍,……_,地址:http://www.mybatis.org/mybatis-3/zh/configuration.html