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

做者:悠悠
來源:http://uusama.com/356.htmlhtml

Mybatis 是 Java 中一個很是好用的數據庫框架,這兒記錄一下在使用過程當中遇到的坑。java

官方中文文檔地址:面試

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

一、在Mybatis mapping.xml映射配置文件中使用大於>號小於號<數據庫

因爲Mybatis的映射文件遵循xml文件的格式,因此不能使用像大於號或者小於號這樣的xml文件特殊字符,須要使用轉義字符代替。數組

< < 小於號
> > 大於號
& &
' 單引號
" 雙引號

可使用:mybatis

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' ]]>

二、Mybatis中使用OGNL表達式test比較字符串intellij-idea

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

<!-- 如下爲錯誤寫法,會拋NumberFormatException異常 -->
<if test="username == 'U'">

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

三、Mybatis實現WHERE IN查詢框架

WHERE IN查詢中,IN的參數是一個列表,須要傳送一個列表參數,使用 foreach 實現。

<select id="selectPostIn" resultType="domain.blog.Post">
 SELECT * FROM POST P
 WHERE ID in
 <foreach item="item" index="index" collection="list"  open="(" separator="," close=")">
    #{item}
 </foreach>
</select>

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

你能夠將任何可迭代對象(如列表、集合等)和任何的字典或者數組對象傳遞給foreach做爲集合參數。

四、Mybatis插入數據的時候返回插入記錄的主鍵id

在進行輸入庫插入的時候,若是咱們須要使用已經插入的記錄的主鍵,則須要返回剛纔插入的數據的主鍵id。經過設置 insert 標籤的 useGeneratedKeys 屬性爲 true 能夠返回插入的記錄的主鍵的id。

<insert id="User" useGeneratedKeys="true" keyProperty="id"> </insert>

MyBatis 面試題和答案我都整理好了,關注公衆號Java技術棧​,回覆:面試,​能夠免費閱讀。

近期熱文推薦:

1.Java 15 正式發佈, 14 個新特性,刷新你的認知!!

2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!

3.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看。。

4.吊打 Tomcat ,Undertow 性能很炸!!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

以爲不錯,別忘了隨手點贊+轉發哦!

相關文章
相關標籤/搜索