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') -->
相关推荐
IT_陈寒3 小时前
Python的finally居然不等同于Go的defer,差点坑惨我
前端·人工智能·后端
会编程的土豆3 小时前
功能详解 01 · 用户注册:从表单到数据库一行
开发语言·数据库·后端·mysql·golang
Ivanqhz3 小时前
Rust collect() 浅析
开发语言·后端·rust
卷无止境3 小时前
python进阶:类方法与静态方法的分野,classmethod 和 staticmethod 到底该怎么选
后端·python
AINative软件工程3 小时前
LLM 应用的分层可观测性工程实践:从 Span 到 Prompt Diff,三层 Trace 让 AI 系统真正可调试
后端·ai编程
卷无止境3 小时前
继承与多态:Python OOP里最容易被用错的两把梯子
后端·python
明月_清风4 小时前
📊 Tokenomics 入门:如何看懂一个项目的代币经济?
后端·web3
明月_清风4 小时前
🏛️ DAO 治理入门:没有老板的公司怎么运转?
后端·web3
yuhaiqiang4 小时前
上线一个人静态网站需要多少钱,难不难?
前端·后端·程序员
小Ti客栈14 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端