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

如圖所示,用戶role字段對(duì)應(yīng)用戶角色信息,但是用戶角色可能會(huì)添加也可能會(huì)刪除某個(gè)角色,當(dāng)然查出來(lái)利用java語(yǔ)言拼接字符串是肯定沒(méi)問(wèn)題的,通過(guò)查找資料我決定使用MySQL的concat函數(shù),及service層將要添加的角色字符串傳過(guò)來(lái),Mybatis直接在數(shù)據(jù)庫(kù)字段的基礎(chǔ)上添加當(dāng)前字符串。
代碼如下:
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>
這種情況下根據(jù)用戶標(biāo)識(shí)以及需要添加的角色即可將用戶權(quán)限修改,需要注意concat里面有三個(gè)參數(shù),第一個(gè)參數(shù)為數(shù)據(jù)庫(kù)字段名,第二個(gè)參數(shù)是分割符,,第三個(gè)參數(shù)及service層傳過(guò)來(lái)的字符串。
親測(cè)有效,需要注意的是某些情況下要考慮到字符的轉(zhuǎn)義問(wèn)題。
Mybatis的基本函數(shù)講解
SUBSTRING(STR,BIN,LEN);(字符串,開(kāi)始位,長(zhǎng)度)length(str)長(zhǎng)度 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,"%")總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java基礎(chǔ)知識(shí)之StringWriter流的使用
這篇文章主要介紹了Java基礎(chǔ)知識(shí)之StringWriter流的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot中的Profile多環(huán)境配置方法
這篇文章主要介紹了SpringBoot中的Profile多環(huán)境配置,SpringBoot提供了兩種多環(huán)境配置的方式,分別是使用profile文件進(jìn)行多環(huán)境配置以及使用@Profile注解進(jìn)行多環(huán)境配置,需要的朋友可以參考下2023-01-01
EasyExcel實(shí)現(xiàn)讀寫(xiě)Excel文件的示例代碼
EasyExcel是阿里巴巴開(kāi)源的一個(gè)excel處理框架,以使用簡(jiǎn)單、節(jié)省內(nèi)存著稱(chēng)。它可以在盡可能節(jié)約內(nèi)存的情況下支持讀寫(xiě)百M(fèi)的Excel,所以本文就將利用它實(shí)現(xiàn)讀寫(xiě)Excel文件,感興趣的可以了解一下2022-08-08
java實(shí)現(xiàn)動(dòng)態(tài)數(shù)組
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
java實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼生成
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
SpringBoot打jar包遇到的xml文件丟失的解決方案
這篇文章主要介紹了SpringBoot打jar包遇到的xml文件丟失的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Java的MyBatis框架中對(duì)數(shù)據(jù)庫(kù)進(jìn)行動(dòng)態(tài)SQL查詢的教程
這篇文章主要介紹了Java的MyBatis框架中對(duì)數(shù)據(jù)庫(kù)進(jìn)行動(dòng)態(tài)SQL查詢的教程,講解了MyBatis中一些控制查詢流程的常用語(yǔ)句,需要的朋友可以參考下2016-04-04
java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12

