Mybatis使用concat函數問題
Mybatis使用concat函數
開發(fā)時遇到一個需求,用戶角色存在變更,使用關聯關系浪費空間,于是想到使用在數據庫字段中存放字符串,以,分割,這樣獲取到數據之后使用
AuthorityUtils.commaSeparatedStringToAuthorityList(param)
即可將用戶角色轉成list集合,數據庫中字段信息如下

如圖所示,用戶role字段對應用戶角色信息,但是用戶角色可能會添加也可能會刪除某個角色,當然查出來利用java語言拼接字符串是肯定沒問題的,通過查找資料我決定使用MySQL的concat函數,及service層將要添加的角色字符串傳過來,Mybatis直接在數據庫字段的基礎上添加當前字符串。
代碼如下:
int updateRole(Account account);
Mybatis代碼如下:
<update id="updateRole" parameterType="org.pet.king.entity.Account">
update account set
role=concat(role,',',#{role,jdbcType=VARCHAR})
where id =
#{id,jdbcType=VARCHAR} and state='A'
</update>
這種情況下根據用戶標識以及需要添加的角色即可將用戶權限修改,需要注意concat里面有三個參數,第一個參數為數據庫字段名,第二個參數是分割符,,第三個參數及service層傳過來的字符串。
親測有效,需要注意的是某些情況下要考慮到字符的轉義問題。
Mybatis的基本函數講解
SUBSTRING(STR,BIN,LEN);(字符串,開始位,長度)length(str)長度 utf-8 中文3字節(jié)
mybatis 模糊查詢 concat("%",字符串,“%”)
e.g..
select a.*,b.storeName,concat("%",a.storeName,"%") ?from tbreport a, tbstore b where b.storeName like concat("%",a.storeName,"%")總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringMVC?@RequestMapping注解屬性詳細介紹
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關于SpringMVC中@RequestMapping注解用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
vscode搭建java開發(fā)環(huán)境的實現步驟
本文主要介紹了vscode搭建java開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03

