Mybatis使用concat函数
开发时遇到一个需求,用户角色存在变更,使用关联关系浪费空间,于是想到使用在数据库字段中存放字符串,以,
分割,这样获取到数据之后使用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函数相关推荐
- mybatis 里面concat()函数t模糊查询
mysql 的 like,建议 like concat() 组合,可以防止sql注入<select id="selectLogininforList" parameterTy ...
- mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)
mybatis中对于使用like来进行模糊查询的几种方式: (1)使用${...} 注意:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错 org.mybatis. ...
- Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)
需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...
- mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)
我需要使用注解在MyBatis中调用Oracle函数.使用MyBatis调用oracle函数(基于注释) 我的映射: @Select("{ CALL #{outParam, jdbcType ...
- mysql中concat函数的使用相关总结
concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...
- concat函数java_MySql中CONCAT(str1,str2,...)函数
一.CONCAT(str1,str2,...) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL mysql> select concat('11','22', ...
- Mysql常用函数之Concat函数
本篇文章主要介绍了MySQL中concat函数的用法(连接字符串),在命令行模式下进行测试. 1. MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参 ...
- Oracle中concat与||区别(以及与mysql中concat函数区别)
Oracle中concat使用以及与||区别 CONCAT只能连接两个字符串 The syntax for the concat function is: concat( string1, strin ...
- mysql concat键值对_MySQL中concat函数
一. concat()函数 1. 含义: 将多个字符串连接成一个字符串. 2. 语法: concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返 ...
最新文章
- 招人—凡客诚品 数据中心系统工程师(海外及手机业务方向)
- alias提升效率工具
- tp5数组为什么要中括号_VBA数组与字典解决方案第7讲:为什么要采用数组公式(一)...
- gradle生命周期
- TypeScript 2 : 获取当前日期及前后范围日期【Array】
- C++类的静态数据成员-关键字static
- RedisTemplate清空所有键值对
- 关于php使用fputcsv进行大数据的导出
- 国内外网站服务器研究现状,国内地学科普网站现状研究
- OFFICE技术讲座:双层字体引擎的提出
- java中的测试类_java中测试类的方法
- 【转】Java工程师成神之路
- java仓库管理设计报告_基于javaweb的仓库管理系统的设计和实现 毕业论文
- 数据库系统工程师考试试题分类精解pdf
- hp服务器修改raid,HP服务器RAID设置方法介绍
- 手机端(APP点灯blinker)-PC端(Node-red)-设备端(ESP32)-客户端(MQTTX客户端)四者之间的通信——通过MQTT通信(上)
- Teardrop代码编程
- 唐发德老师:精益生产管理导师(唐发德)
- 结对第一次—原型设计(文献摘要热词统计)
- html个人简历制作