Mybatis使用concat函数

Mybatis使用concat函数开发时遇到一个需求,用户角色存在变更,使用关联关系浪费空间,于是想到使用在数据库字段中存放字符串,以,分割,这样获取到数据之后使用AuthorityUtils.commaSeparatedStringToAuthorityList(param)即可将用户角色转成list集合,数据库中字段信息如下如图所示,用户role字段对应用户角色信息,但是用户角色可能会添加也可能会删除某个角色,当然查出来利…

大家好,又见面了,我是你们的朋友全栈君。

开发时遇到一个需求,用户角色存在变更,使用关联关系浪费空间,于是想到使用在数据库字段中存放字符串,以分割,这样获取到数据之后使用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层传过来的字符串。

亲测有效,需要注意的是某些情况下要考虑到字符的转义问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135177.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python进阶(7)垃圾回收机制

    python进阶(7)垃圾回收机制前言现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再像c,c++里,需要用户自己管理内存。自己管理内存及其自由,可以任意申请内存,但这如同一把双刃剑,可能会造成内存泄漏,空指针等bug

    2022年7月28日
    6
  • TF-IDF算法介绍及实现「建议收藏」

    TF-IDF算法介绍及实现「建议收藏」目录1、TF-IDF算法介绍(1)TF是词频(TermFrequency)(2)IDF是逆向文件频率(InverseDocumentFrequency)(3)TF-IDF实际上是:TF*IDF2、TF-IDF应用3、Python3实现TF-IDF算法4、NLTK实现TF-IDF算法5、Sklearn实现TF-IDF算法6、Jieba实现TF-IDF算…

    2022年6月12日
    62
  • 网站挂马检测_域名拦截检测网站

    网站挂马检测_域名拦截检测网站网站挂马检测工具,网站挂马如何检测,如何检测网站挂马在最近的一次网站优化项目中,我负责的一个网站出现了网站被挂马问题,所以网站的关键词排名很快就从首页消失了。把网站挂马问题解决后,花费了很多的精力才让关键词排名恢复。在seo公司工作期间,经常听到同事说起网站挂马的危害,因为没有切身体会,所以并没有太多感触。突然网站挂马的问题落到了自己负责的项目上,这才意识到网站挂马问题真的很不简单,在平时…

    2022年9月30日
    3
  • java sort排序[通俗易懂]

    java sort排序[通俗易懂]栗子默认的sort方法,根据元素的自然顺序,将指定的列表按升序排序。第二个方法,根据指定比较器产生的顺序对指定的列表进行排序。快速记忆法参考当前对象与后一个对象进行比较,如果比较结果为1进行交换,其他不进行交换。当后一个对象比当前对象大,返回结果值为1时,前后交换,说明是倒序排列。当后一个对象比当前对象小,返回结果值为1时,前后交换,说明是升序排列。//Integ…

    2022年7月15日
    13
  • stm32使用oled显示屏_stm32f103c8t6封装

    stm32使用oled显示屏_stm32f103c8t6封装stm32f103c8t6控制OLED显示屏0.96寸4针OLED显示屏IIC蓝色0.96寸OLED显示屏7针SPI蓝色,6针黄蓝双色0.96寸4针OLED显示屏IIC蓝色话不多说,直接先上图!显然可以看出,利用IIC接口显示出来的文字是没那么清晰的,有点断断续续的。而这款显示屏我是买淘宝上这家店的,下面附上这个显示屏链接:0.96寸4针OLED显示屏IIC蓝色附上显示屏与stm32的接线://功能描述:OLEDI2C接口演示例程(STM32F103系列)//

    2022年10月15日
    2
  • React路由基本用法[通俗易懂]

    React路由基本用法[通俗易懂]React路由基本用法1.ReactRouter4.0基本概述:ReactRouter4.0(以下简称RR4)遵循React的设计理念,即万物皆组件。所以RR4只是一堆提供了导航功能的组件(还有若干对象和方法),具有声明式(声明式编程简单来讲就是你只需要关心做什么,而无需关心如何去做,可组合性的特点。RR4采用单代码仓库模型架构(monorepo),这意味者这个仓库里面有…

    2022年5月4日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号