Mybatis传参为逗号分隔的字符串情形进行in条件查询方式
目录
- 传参为逗号分隔的字符串情形进行in条件查询
- 后端只需要做如下调整
- 根据逗号分隔的id查询
传参为逗号分隔的字符串情形进行in条件查询
在业务变更需支持多条件查询,在改动最小的情况下,实现方式就是只改mapper.xml,这时,可让前端逗号分隔传参
后端只需要做如下调整
<if test="paramXXX!= null and paramXXX!= ''"> and t.paramXXX in <foreach item="item" index="index" collection="paramXXX.split(',')" open="(" separator="," close=")"> #{item} </foreach> </if>
根据逗号分隔的id查询
select id,name from user where <if test="ids!=null and ids!=''"> id in <foreach collection="ids.split(',')" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </if>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
mybatis in查询传入String方式
mybatis in查询传入String 在使用 mybaits 进行 in 查询时,传入String,如1,2,3,发现查询的结果并非我们想要的 这是因为#{}编译完自动加双引号"" 也就是变成in ("1,2,3") 如果想要获得我们想要的结果,可以使用${},编译完是这样的 in (1,2,3) 例如,查询铃音库中多首铃音的总数量 <select id="getProgsResourceCount" resultType="
-
MyBatis 动态拼接Sql字符串的问题
MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力.如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号.动态 SQL 可以彻底处理这种痛苦. 动态SQL MyBatis的动态SQL,解决了SQL字符串拼接的痛苦. 1.if <select id="findActiveBlogWithTitleLike" parameterType="Blog" result
-
mybatis分割字符串并循环,实现in多个参数的操作
mybatis分割字符串并循环,实现in多个参数 mybatis xml代码: <select id="selectInXh" resultMap="BaseResultMap" parameterType="java.lang.String"> select * from carinfo where xh in <if test="param1 != null and param1 != ''"> &
-
基于mybatis 动态SQL查询总结
背景 ××项目需要提供系统部分函数第三方调用接口,基于安全性和避免暴露数据库表信息的基础上进行函数接口的设计,根据第三方调用身份的权限提供某张表的自定义集合. 本项目基于mybatis的持久层框架,支持定制化的SQL,这样可以避免拼接sql语句的痛苦. 例如拼接时要确保不能添加空格,还要注意去掉列表的最后一个列名的都逗号. 基于OGNL的表达式的mybatis框架可以彻底解决这种痛苦. 动态返回mysql某张表指定列的名字,类型和注释 <select id="queryColumns&qu
-
Mybatis传参为逗号分隔的字符串情形进行in条件查询方式
目录 传参为逗号分隔的字符串情形进行in条件查询 后端只需要做如下调整 根据逗号分隔的id查询 传参为逗号分隔的字符串情形进行in条件查询 在业务变更需支持多条件查询,在改动最小的情况下,实现方式就是只改mapper.xml,这时,可让前端逗号分隔传参 后端只需要做如下调整 <if test="paramXXX!= null and paramXXX!= ''"> and t.paramXXX in <foreach item="item&quo
-
浅谈Mybatis传参类型如何确定
目录 I. 环境配置 1. 项目配置 2. 数据库表 II. 传参类型确定 1. 参数类型为整形 2. 指定jdbcType 3. 传参类型为String 4. TypeHandler实现参数替换强制添加引号 5. 小结 最近有小伙伴在讨论#{}与${}的区别时,有提到#{}是用字符串进行替换,就我个人的理解,它的主要作用是占位,最终替换的结果并不一定是字符串方式,比如我们传参类型是整形时,最终拼接的sql,传参讲道理也应该是整形,而不是字符串的方式 接下来我们来看一下,mapper接口中不同的
-
Mybatis中的Criteria条件查询方式
Mybatis Criteria条件查询 Criterion Criterion是最基本,最底层的Where条件,用于字段级的筛选. Criteria Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系. 其它 Example类的distinct字段用于指定DISTINCT查询. orderByClause字段用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定. 代码示例 import
-
mybatis中的count()按条件查询方式
目录 mybatis count()按条件查询 1.sql count()函数 2.mybatis中count()按条件查询 在查询时使用count(*),total为1,结果为0 mybatis count()按条件查询 1.sql count()函数 count()函数返回匹配指定条件的行数. sql count(column_name)语法: count(column_name)函数返回指定列的值的数目(null)不计入. select count(column_name) from ta
-
vue路由传参方式的方式总结及获取参数详解
目录 一.声明式传参 1.params传参(显示参数) 2.params传参(不显示参数) 3.query 传参 二.编程式传参 1.params传参(显示参数) 2.params传参(不显示参数) 3.query 传参 三.获取参数 1.params的获取方式 2.query的获取方式 四.需要注意的点 总结 一.声明式传参 1.params传参(显示参数) 在url中会显示出传参的值,刷新页面不会失去拿到的参数,使用该方式传值的时候,需要子路由提前配置好参数: //路由参数配置 const
-
Flutter路由的跳转、动画和传参详解(最简单)
路由 做Android/iOS原生开发的时候,要打开一个新的页面,你得知道你的目标页面对象,然后初始化一个Intent或者ViewController,再通过startActivity或者pushViewController来推出一个新的页面,不能跟web一样,直接丢一个链接地址就跳转到新的页面.当然,可以自己去加一个中间层来实现这些功能. Flutter里面是原生支持路由的.Flutter的framework提供了路由跳转的实现.我们可以直接使用这些功能. Flutter路由介绍 Flutte
-
Mybatis中#{}和${}传参的区别及#和$的区别小结
最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"",比如 select * from table where name = #{name} ,传入的name为小李,那么最后打印出来的就是 select * from table where name = '小李',就是会当成字符串来解析,这样相比于$的好处是比较明显对的吧,#{}传参能防止sql注入,如果
-
详解mybatis #{}和${}的区别、传参、基本语法
1 #{}和${}的区别.及注入问题 (1) 区别: 首先清楚一点,动态 SQL 是 mybatis 的强大特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析,#{} 和 ${} 在预编译中的处理是不一样的: 例如:select * from t_user where userName = #{name}; #{}预编译:用一个占位符 ? 代替参数:select * from t_user where userName = ? #{}预编
-
Mybatis order by 动态传参出现的问题及解决方法
问题由来 一个简单的需求,要求把和当前用户相关的数据置顶展示. 这里,我用了一个简单的用户表来复现这个需求. 很简单,查询语句后面加上:order by t.login_name='wulaoer' desc 就行了. 如下所示,吴老二就到顶了. 那Mybatis脚本怎么写呢? 就这么写
-
mybatis group by substr函数传参报错的解决
目录 mybatis group by substr传参报错 报异常 原因 使用group by 分组查询返回为null 解决方法 mybatis group by substr传参报错 报异常 ### Cause: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式 SELECT SUBSTR( region_code, 1,#{ queryMap.groupCodeLength, jdbcType = INTEGE
随机推荐
- JS利用正则配合replace替换指定字符
- javascript 网页跳转的方法
- SQL查询排名函数实例
- VBS中Select CASE的其它用法
- 一个多浏览器支持的背景变暗的div并可拖动提示窗口功能的代码
- 利用Python绘制数据的瀑布图的教程
- 详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
- Mysql启动与数据库的创建方法[图文]
- ubuntu 14.04 64位安装配置docker教程
- js数组的五种迭代方法及两种归并方法(推荐)
- 详解webpack 多入口配置
- 两个Javascript小tip资料
- PowerShell函数实现类似重载功能实例
- 用shell脚本监控进程是否存在 不存在则启动的实例
- sqlserver 错误602,未能在sysindexes中找到数据库 的解决办法
- java字符串与格式化输出的深入分析
- 基于jQuery实现点击最后一行实现行自增效果的表格
- 再谈异常处理try catch finally
- java使用Cookie判断用户登录情况的方法
- 微信小程序scroll-view组件实现滚动动画