千家信息网

mybatis in查询传入String的方法是什么

发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,本篇内容主要讲解"mybatis in查询传入String的方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"mybatis in查询传入Strin
千家信息网最后更新 2025年02月11日mybatis in查询传入String的方法是什么

本篇内容主要讲解"mybatis in查询传入String的方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"mybatis in查询传入String的方法是什么"吧!

mybatis in查询传入String

在使用 mybaits 进行 in 查询时,传入String,如1,2,3,发现查询的结果并非我们想要的

这是因为#{}编译完自动加双引号"" 也就是变成in ("1,2,3")

如果想要获得我们想要的结果,可以使用${},编译完是这样的 in (1,2,3)

例如,查询铃音库中多首铃音的总数量

如果传入参数是List或者Array,则直接用foreach即可

例如

mybatis in查询传入字符串参数

sql里的in操作符允许我们在where子句中规定多个值进行匹配。

语法:

SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...);

在mybatis里,可以通过传入数组或容器(array、list、set、map)通过foreach标签来给in操作符指定参数。

问题:想要从org表中匹配字段org_id在OR001、OR002、OR004中的数据,org_id是字符串类型的字段。

常规方法是在mapper.java中传入一个包含"OR001"、"OR002"、"OR004"的list对象orgIdList,在xml中:

SELECT * from org where org_id in #{orgId}

如果要作为in的匹配参数的多个值在一个String类型的对象orgs中,想直接通过String传入,有两种实现方式。

1、在xml中用${orgs}把整个String作为sql的一部分

SELECT * from org where org_id in (${orgs})

这种写法需要关注字符串orgs的内容在拼入之后,整个sql是否是符合语法的,按上面的需求和sql写法,就要求作为sql一部分的orgs的值为"'OR001','OR002','OR004'"。

参数直接以sql一部分的方式作为查询语句存在sql注入的风险,有一些项目可能会一刀切地限制开发者不允许用这种写法。

2、在xml的foreach标签里,传入collection属性时将字符串用split函数转为数组

SELECT * from org where org_id in #{orgId}

在这里传入的orgs字符串的值可以为"OR001,OR002,OR004",在调用split函数时设置","分格,可以直接切分出三个字符串作为数组的元素。

到此,相信大家对"mybatis in查询传入String的方法是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

查询 字符 字符串 方法 参数 内容 写法 数组 函数 多个 字段 对象 操作符 方式 标签 类型 结果 语法 铃音 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 赚钱软件开发什么好 计算机等级网络技术题 启动数据库的命令是 网络安全可以考 软件开发 职业认证 学习网络技术的学习心得 火山软件开发平台正式版 信息网络技术对老师的影响 成都管理软件开发怎样收费 阿拉德之怒国际版服务器异常 小规模软件开发服务费税率6 计算机网络技术女生好学吗 新乡学院计算机网络技术专业 西安软件开发工作哪里好找 计算机三级网络技术分值占比 各公司服务器在哪里 网络安全顶层设计和总体布局 儿童游戏服务器 两个项目同时连接一个数据库 数据库脚本插入时间戳 陕西毕业生数据库 安徽数据网络技术市场价格 三级网络技术教材百度云 舟山桌面软件开发流程 移动安卓软件开发实践案例 成都管理软件开发怎样收费 用显示器连接服务器 网络安全三维模型 计算机网络技术英文读音 艺湾(北京)互联网络技术
0