why
有不少这样的情况,前端会传筛选条件,给到后端的时候是个 conditionStr ,如果您用的是 mybatis-plus 的 API 那么直接 split 一下就可以使用,如果不是,那就需要将其转换成 inStr ,下面举例说明。
use
转换【使用 JDK8 的 stream 实现】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'
mapper文件使用 inStr
<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') -->
【Java代码】实现字符串转数据库的 inStr【使用 JDK8 stream.collect(Collectors.joining(delimiter prefix suffix)) 实现】
如果觉得《【Java代码】实现字符串转数据库的 inStr【使用 JDK8 stream.collect(Collectors.j》对你有帮助,请点赞、收藏,并留下你的观点哦!