Java【代码 05】实现字符串转数据库的inStr使用JDK8 stream.collect(Collectors.joining(delimiter, pr

@TOC

1.why

有不少这样的情况,前端会传筛选条件,给到后端的时候是个 conditionStr ,如果您用的是 mybatis-plus 的 API 那么直接 split 一下就可以使用,如果不是,那就需要将其转换成 inStr ,下面举例说明。

2.use

  1. 转换【使用 JDK8 的 stream 实现】
java 复制代码
public class conditionStrToInStr {
    public static void main(String[] args) {
        String conditionStr = "conditionValueA,conditionValueB,conditionValueC";
        String inStr = Arrays.stream(conditionStr.split(",")).collect(Collectors.joining("\',\'", "\'", "\'"));
        System.out.println(inStr);
    }
}
// 输出结果为 'conditionValueA','conditionValueB','conditionValueC'
  1. mapper文件使用 inStr
xml 复制代码
<select id="getInfoByCondition" parameterType="map" >
	SELECT * FROM tableName
	<where>
		<if test="inStr!= null and inStr!= ''">
			AND conditionField IN ( ${inStr} )
		</if>
	</where>
</select>
<!-- SELECT * FROM tableName 
 WHERE conditionField IN ('conditionValueA','conditionValueB','conditionValueC') -->
相关推荐
Moment2 小时前
AI 全栈指南:NestJs 中的 Service Provider 和 Module
前端·后端·面试
IT_陈寒2 小时前
为什么我的JavaScript异步回调总是乱序执行?
前端·人工智能·后端
Moment2 小时前
AI全栈入门指南:NestJs 中的 DTO 和数据校验
前端·后端·面试
小村儿2 小时前
Harness Engineering:为什么你用 AI 越用越累?
前端·后端·ai编程
小码哥_常2 小时前
为什么PUT和DELETE请求在大公司中逐渐被弃用?
后端
宫_商_角_徵2 小时前
动态代理到底在做什么?
后端
苍何2 小时前
我把微信 cli 开源了,群消息终于不用爬楼了!
后端
Moment2 小时前
当前端开始做 Agent 后,我才知道 LangGraph 有多重要❗❗❗
前端·后端·面试
小蜜蜂dry3 小时前
nestjs实战-登录、鉴权(一)
前端·后端·nestjs
苍何3 小时前
接入Seedance 2.0 后的 OiiOii,太让人上头了!
后端