mysql 使用jcyid not in (#{jcyidsString}) #{jcyidsString}是个字符串,帮我修改
时间: 2024-01-21 20:17:52 浏览: 85
JNI形参中改写String
如果你使用的是Java语言,可以尝试使用PreparedStatement和setString方法来防止SQL注入攻击。示例代码如下:
```
String jcyidsString = "1,2,3"; // 假设 jcyidsString 是这样一个字符串
String[] jcyids = jcyidsString.split(","); // 将字符串转成数组
// 构造 SQL 语句
StringBuilder sqlBuilder = new StringBuilder("SELECT * FROM table_name WHERE jcyid NOT IN (");
for (int i = 0; i < jcyids.length; i++) {
sqlBuilder.append("?");
if (i < jcyids.length - 1) {
sqlBuilder.append(",");
}
}
sqlBuilder.append(")");
// 创建 PreparedStatement 对象
PreparedStatement pstmt = connection.prepareStatement(sqlBuilder.toString());
// 设置参数
for (int i = 0; i < jcyids.length; i++) {
pstmt.setString(i + 1, jcyids[i]);
}
// 执行查询操作并处理结果
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
// 处理每一行记录
}
// 关闭资源
rs.close();
pstmt.close();
```
上述代码中,使用StringBuilder构造了一个带有?占位符的SQL语句,然后通过PreparedStatement对象的setString方法来设置参数,最后执行查询操作并处理结果。这种方式可以有效地防止SQL注入攻击。
阅读全文