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') -->
相关推荐
源代码•宸11 分钟前
分布式缓存-GO(分布式算法之一致性哈希、缓存对外服务化)
开发语言·经验分享·分布式·后端·算法·缓存·golang
It's now23 分钟前
Spring AI 基础开发流程
java·人工智能·后端·spring
计算机毕设VX:Fegn089526 分钟前
计算机毕业设计|基于springboot + vue图书商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
夕颜1112 小时前
BeeAI 框架学习记录
后端
极市平台2 小时前
骁龙大赛-技术分享第5期(上)
人工智能·经验分享·笔记·后端·个人开发
程序员爱钓鱼2 小时前
Node.js 编程实战:路由处理原理与实践
后端·node.js·trae
hhzz3 小时前
Spring Boot整合Activiti的项目中实现抄送功能
java·spring boot·后端
Victor3565 小时前
Netty(7)如何实现基于Netty的TCP客户端和服务器?
后端
Victor3565 小时前
Netty(8)什么是Netty的ChannelPipeline和ChannelHandler?
后端
乘风!6 小时前
NSSM启动tomcat部署Java程序
java·服务器·后端·tomcat