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') -->
相关推荐
智驭未来掌门人5 小时前
利用FFmpeg快速实现一个RTSP推流服务器
后端
垚垚学技术_聚焦云原生5 小时前
K8s Pod 完整生命周期详解
后端
JavaGuide6 小时前
Github 史诗级故障,与此同时,Cursor 版「GitHub」正式上线!
前端·后端
不一样的少年_6 小时前
修了 Bug、做了重构,为什么老板还是觉得你没产出?
前端·后端·程序员
水深火乐6 小时前
安全地生成验证码、密码和 Token
后端
小强19886 小时前
SQL Server 慢查询怎么定位?一套从“卡”到“快”的完整排查流程
后端
水深火乐6 小时前
interface和any
后端
步行cgn6 小时前
MyBatis Error evaluating expression ‘ids‘. Return value (3) was not iterable 错误详
java·后端
神奇小汤圆6 小时前
Spring Boot + LangChain4j实现RAG——从零搭建企业级知识库问答系统
后端
H_Peak6 小时前
Python运算符与流程控制:if条件判断
后端