Mybatis學習的一些細節
最近幾天一直在學習mybatis,看了一些原始碼,本文講述mybatis的一些基本配置和基本的用法和注意到一些細節。個人時間和精力有限,本文屬於流水賬型別,不成體系,算是自己的個人筆記吧。
1.本案例所使用的資料庫為mysql,資料庫的指令碼程式碼如下:
2.建立實體類
3.去官網下載mybatis ,匯入相應的jar包。
建立配置檔案configuration.xml
這個配置檔案,需要一個物件跟資料庫互動,這個物件是sqlsession,下面講述sqlsession.
Sqlsession的作用:
-
- 向sql 語句傳入引數
- 向sql 語句傳入引數
-
- 執行 sql語句
-
- 獲取執行sql語句的結果
-
- 事物的控制
如何獲取Sqlsession:
-
- 通過獲取配置檔案獲取資料庫連線相關資訊
-
- 通過配置資訊構建 sqlSessionFactory 的物件
-
- 通過sqlsessionFactory大家資料庫會話。
3.SQL基本配置、執行
Message.xml檔案配置:
其中使用到了ONGL表示式:
在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配置檔案常用的標籤如下:
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