天天看點

MyBatis 的 4 個妙用,别再踩坑了!

Mybatis 是 Java 中一個非常好用的資料庫架構,這兒記錄一下在使用過程中遇到的坑。

官方中文文檔位址:

http://www.mybatis.org/mybatis-3/zh/getting-started.html

1、在Mybatis mapping.xml映射配置檔案中使用大于>号小于号<

由于Mybatis的映射檔案遵循xml檔案的格式,是以不能使用像大于号或者小于号這樣的xml檔案特殊字元,需要使用轉義字元代替。

< < 小于号

> > 大于号

& & 和

' ’ 單引号

" “ 雙引号

可以使用:

SELECT * FROM test 
WHERE 1 = 1 AND start_date  &lt;= CURRENT_DATE AND end_date &gt;= CURRENT_DATE
<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>      

2、Mybatis中使用OGNL表達式test比較字元串

在Mybatis映射配置檔案中,使用OGNL表達式test的時候,比較字元串時,需要調用 toString()方法保證 == 兩邊的值都是 String 類型。

<!-- 以下為錯誤寫法,會抛NumberFormatException異常 -->
<if test="username == 'U'">

<!-- 正确寫法如下兩種 -->
<if test="username == 'U'.toString()">
<if test='username == "U"'>      

當使用可疊代對象或者數組時,index是目前疊代的次數,item的值是本次疊代擷取的元素。當使用字典(或者Map.Entry對象的集合)時,index是鍵,item是值。

你可以将任何可疊代對象(如清單、集合等)和任何的字典或者數組對象傳遞給foreach作為集合參數。

4、Mybatis插入資料的時候傳回插入記錄的主鍵id

在進行輸入庫插入的時候,如果我們需要使用已經插入的記錄的主鍵,則需要傳回剛才插入的資料的主鍵id。通過設定 insert 标簽的 useGeneratedKeys 屬性為 true 可以傳回插入的記錄的主鍵的id。