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') -->
相关推荐
IVEN_12 分钟前
Gradle 依赖下载 403 Forbidden 修复:全局镜像配置实战
android·后端
用户7623524259115 分钟前
Innodb底层原理与Mysql日志机制深入剖析
后端
ffqws_21 分钟前
Spring @Transactional 注解详解:从入门到避坑
java·数据库·后端·spring
倔强的石头_38 分钟前
Cherry Studio零代码打造私域工具——“爆款文案拆解仿写机”
后端
_杨瀚博42 分钟前
信创-为什么ORACLE使用JDBC查询SYSDATE时,RS.getDate能获取到时间部分?
后端
IT_陈寒1 小时前
JavaScript的this又背刺我,这次真长记性了
前端·人工智能·后端
RuoyiOffice1 小时前
SpringBoot+Vue3 企业假期余额系统设计:账户、流水、预占、销假退回与到期清零全链路拆解
spring boot·后端·spring·vue·hr·企业管理软件·ruoyioffice
潘祖记1 小时前
# 一行命令让 AI 接管全屋智能:FeyaGate Skill 保姆级接入教程,小米/涂鸦/美的/易微联全搞定
人工智能·后端·asp.net
小码哥_常11 小时前
告别MySQL!大厂集体转投PostgreSQL,到底藏着什么玄机?
后端