开发时遇到一个需求,用户角色存在变更,使用关联关系浪费空间,于是想到使用在数据库字段中存放字符串,以分割,这样获取到数据之后使用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 setrole=concat(role,',',#{role,jdbcType=VARCHAR})where id =#{id,jdbcType=VARCHAR} and state='A'
</update>

这种情况下根据用户标识以及需要添加的角色即可将用户权限修改,需要注意concat里面有三个参数,第一个参数为数据库字段名,第二个参数是分割符,第三个参数及service层传过来的字符串。

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

Mybatis使用concat函数相关推荐

  1. mybatis 里面concat()函数t模糊查询

    mysql 的 like,建议 like concat() 组合,可以防止sql注入<select id="selectLogininforList" parameterTy ...

  2. mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)

    mybatis中对于使用like来进行模糊查询的几种方式: (1)使用${...} 注意:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错 org.mybatis. ...

  3. Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

    需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...

  4. mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)

    我需要使用注解在MyBatis中调用Oracle函数.使用MyBatis调用oracle函数(基于注释) 我的映射: @Select("{ CALL #{outParam, jdbcType ...

  5. mysql中concat函数的使用相关总结

    concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...

  6. concat函数java_MySql中CONCAT(str1,str2,...)函数

    一.CONCAT(str1,str2,...) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL mysql> select concat('11','22', ...

  7. Mysql常用函数之Concat函数

    本篇文章主要介绍了MySQL中concat函数的用法(连接字符串),在命令行模式下进行测试.  1. MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参 ...

  8. Oracle中concat与||区别(以及与mysql中concat函数区别)

    Oracle中concat使用以及与||区别 CONCAT只能连接两个字符串 The syntax for the concat function is: concat( string1, strin ...

  9. mysql concat键值对_MySQL中concat函数

    一. concat()函数 1. 含义: 将多个字符串连接成一个字符串. 2. 语法: concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返 ...

最新文章

  1. 招人—凡客诚品 数据中心系统工程师(海外及手机业务方向)
  2. alias提升效率工具
  3. tp5数组为什么要中括号_VBA数组与字典解决方案第7讲:为什么要采用数组公式(一)...
  4. gradle生命周期
  5. TypeScript 2 : 获取当前日期及前后范围日期【Array】
  6. C++类的静态数据成员-关键字static
  7. RedisTemplate清空所有键值对
  8. 关于php使用fputcsv进行大数据的导出
  9. 国内外网站服务器研究现状,国内地学科普网站现状研究
  10. OFFICE技术讲座:双层字体引擎的提出
  11. java中的测试类_java中测试类的方法
  12. 【转】Java工程师成神之路
  13. java仓库管理设计报告_基于javaweb的仓库管理系统的设计和实现 毕业论文
  14. 数据库系统工程师考试试题分类精解pdf
  15. hp服务器修改raid,HP服务器RAID设置方法介绍
  16. 手机端(APP点灯blinker)-PC端(Node-red)-设备端(ESP32)-客户端(MQTTX客户端)四者之间的通信——通过MQTT通信(上)
  17. Teardrop代码编程
  18. 唐发德老师:精益生产管理导师(唐发德)
  19. 结对第一次—原型设计(文献摘要热词统计)
  20. html个人简历制作

热门文章

  1. scala的println
  2. 把图片转化成字体图标
  3. java打飞机小游戏(跟着网上视频写到)
  4. 大金牙破碎机锤头高度耐磨的中国髻
  5. 如何快速实现异地不同网络打印机共享
  6. 计算机语言符号通配符,day 15 通配符和特殊符号
  7. 【kali-漏洞扫描】(2.1)Nessus解除IP限制、扫描快无结果、插件plugins被删除(中)
  8. Eclipse快捷键耍帅大全
  9. 【末日祭典】魔法门英雄无敌III——lanruo
  10. 删除wordpress评论表单中的网址文本框