springboot+mybatis框架。修改代码String jcyidsString="bb768bcb3ca649aaaaf073d0f0abe743,4bb214f612a04bb084fd2029572a6c0b,9d36289a4a99421b95cce0f6c0154b42,18351bc3fc1e4263b764767f9cdfd74d",在xml中select* from jcy_jcyxx where jcyid not in (#{jcyidsString})能查到不等于这四个值的数据
时间: 2024-01-22 20:20:46 浏览: 75
如果你使用了 `@Param` 注解传递参数,那么在 XML 中应该要使用 `${}` 语法来引用变量。所以你的 SQL 语句应该改成:
```xml
<select id="findJcyxxNotInJcyids" parameterType="java.lang.String" resultType="com.example.demo.entity.Jcyxx">
SELECT *
FROM jcy_jcyxx
WHERE jcyid NOT IN (${jcyidsString})
</select>
```
如果你没有使用 `@Param` 注解传递参数,那么在 XML 中应该要使用 `#{}` 语法来引用变量。所以你的 SQL 语句应该改成:
```xml
<select id="findJcyxxNotInJcyids" parameterType="java.util.List" resultType="com.example.demo.entity.Jcyxx">
SELECT *
FROM jcy_jcyxx
WHERE jcyid NOT IN
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
注意,这里的参数类型是 `java.util.List`,而不是 `java.lang.String`。在 Java 代码中,你需要将字符串转换成一个 List,然后将这个 List 作为参数传递给 MyBatis。
```java
String jcyidsString = "bb768bcb3ca649aaaaf073d0f0abe743,4bb214f612a04bb084fd2029572a6c0b,9d36289a4a99421b95cce0f6c0154b42,18351bc3fc1e4263b764767f9cdfd74d";
List<String> jcyids = Arrays.asList(jcyidsString.split(","));
List<Jcyxx> result = jcyxxMapper.findJcyxxNotInJcyids(jcyids);
```
阅读全文