修改代码String jcyidsString="bb768bcb3ca649aaaaf073d0f0abe743,4bb214f612a04bb084fd2029572a6c0b,9d36289a4a99421b95cce0f6c0154b42,18351bc3fc1e4263b764767f9cdfd74d",在xml中select* from jcy_jcyxx where jcyid not in (#{jcyidsString})能查到不等于这四个值的数据
时间: 2024-01-22 12:20:12 浏览: 60
你可以使用MyBatis的foreach标签来实现将jcyidsString字符串转化为一个列表,然后使用not in语句查询不在该列表中的数据。
首先,你需要在Mapper.xml文件中定义一个foreach标签来将逗号分隔的字符串转化为一个列表:
```
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
```
然后,在SQL语句中使用not in语句查询不在该列表中的数据:
```
<select id="findJcyxx" parameterType="java.util.List" resultType="com.xxx.Jcyxx">
select *
from jcy_jcyxx
where jcyid not in
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
```
最后,在Java代码中调用该SQL查询方法,并传入一个包含四个jcyid的列表即可:
```
List<String> jcyidsList = Arrays.asList("bb768bcb3ca649aaaaf073d0f0abe743", "4bb214f612a04bb084fd2029572a6c0b", "9d36289a4a99421b95cce0f6c0154b42", "18351bc3fc1e4263b764767f9cdfd74d");
List<Jcyxx> jcyxxList = sqlSession.selectList("findJcyxx", jcyidsList);
```
阅读全文