文章目錄
- 前言
- 一、MyBatis遍歷字串
- 二、在MyBatis使用特殊符號
- Sql資料型別轉換
- int轉varchar
- varchari轉int
- 總結
前言
這兩天打代碼在mybatis的資料庫操作上 遇到了一些問題,其實主要還是資料庫知識有點薄弱,是我菜了,所以寫個博客做個筆記,以后遇到就不會再懵逼了,
一、MyBatis遍歷字串
說到myBatis的遍歷,我只想到mybatis遍歷陣列或鏈表,所以我的欄位是字串如“1,2,3”.所以我最先想到的是在呼叫Mapper介面時,吧該字串轉化成陣列,傳入mybatis里,其實一般的情況下是沒有問題的,但是我的資料庫設定太多映射了,在還沒呼叫到將字串轉為陣列時就通過方法映射呼叫MyBatis遍歷的方法,然后就報了資料不匹配的錯,這是防不勝防,我還一直以為是我遍歷方法寫錯了,
以下是我遍歷字串的方法,學到了,還能這么用
select * from t_toWho where id in
<foreach collection="strs.split(',')" item="item" index="index" open="(" close=")" separator=",">
CONVERT(#{item},SIGNED)
</foreach>
二、在MyBatis使用特殊符號
因為以前在Mybatis的判斷都是 以下之類的
<if test="A!=null and A!=“”"> </if>
所以今天突然想比大小 就發現報錯了
與元素型別 “if“ 相關聯的 “test“ 屬性值不能包含 ‘<‘ 字符
特意去學習了一波
gt 對應 >
gte 對應 >=
lt 對應 <
lte 對應 <=
eq 對應 ==
neq 對應 !=
還遇到了一個比較坑爹的 關于字串拼接
因為想要實作模糊查詢,因為原因如上面一樣,映射多,不然直接在呼叫Mapper介面的時候拼接了就不會有那么多事了
不多說了直接上代碼
and toWhoId like CONCAT(CONCAT('%', #{toWhoId}), '%')
其實辦法還有很多 ,我是覺得上面的方法不錯,比較直觀,有更好的話,各位大佬幫忙在評論指出哦
Sql資料型別轉換
int轉varchar
123+‘’
CAST(123 AS CHAR);
varchari轉int
CONVERT(#{item},SIGNED)
CONVERT(‘67’,SIGNED);
總結
好好對每一個坑都做好筆記,就會越來越好,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/156117.html
標籤:其他
