gpt4 book ai didi

JavaPreparedStatement setString() 在查询中添加引号(mysql jdbc)

转载 作者:行者123 更新时间:2023-11-30 00:34:11 26 4
gpt4 key购买 nike

我是准备好的声明的新手,不确定我想做的事情是否合法。

 String updatequery = "Update articles SET Title = ? WHERE id IN ?";

try{
prestatement = connect.prepareStatement(updatequery);

prestatement.setString(1, "Test");
prestatement.setString(2,"(4,5,6)");

我收到以下错误:

Error: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in        your SQL syntax; check the manual that corresponds to your MySQL server version for the     right syntax to use near ''(4,5,6)'' at line 1

看起来 setString() 方法正在向查询添加引号,有没有办法避免使用这个或其他方法来完成我想要做的事情?

最佳答案

试试这个:

final Collection<Integer> ids = Arrays.asList(4, 5, 6);

final StringBuilder updatequery = new StringBuilder("Update articles SET Title = ? WHERE id IN (");

for (int i = 0; i < ids.size(); i++) {
updatequery.append("?,");
}

updatequery.deleteCharAt(updatequery.length() - 1);
updatequery.append(")");

System.out.println(updatequery);

prestatement.setString(1, "Test");
int i = 2;
for (final Integer id : ids) {
prestatement.setInt(i ++, id);
}

关于JavaPreparedStatement setString() 在查询中添加引号(mysql jdbc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22303085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com