gpt4 book ai didi

java - 我使用逐步构建的 sql 请求不断收到 SQLError

转载 作者:行者123 更新时间:2023-11-29 15:42:07 24 4
gpt4 key购买 nike

我有一个 JavaFX 应用程序,用户在其中输入一些有关他的信息,然后我有一个名为 DbUpdateBuilder 的类。这使我可以更轻松地创建我的 sql 请求。然后我使用statement.executeUpdate(request)

问题是我总是收到此错误: java.sql.SQLSyntaxErrorException: syntax error near " line 1所以我认为我的请求有问题,所以我打印了收到的请求:

UPDATE `users` SET `users`.`first_name`=null,`users`.`last_name`=null,`users`.`age`=null,`users`.`role`=null,`users`.`gender`= 3  WHERE `users`.`id` LIKE 10

如果我硬编码它就可以工作。

这不起作用

            // Some code
Statement stmt = con.createStatement();
String request = builder.getRequest();
System.out.println(request); // where the request in the
// working exemple comes from

if(stmt.executeUpdate(request) > 0) { // I get the error from this
// line
return UPDATE_SUCCESS;
}
return SQL_ERROR_OCCURED;

但这确实有效

            Statement stmt = con.createStatement();
String request = builder.getRequest();
System.out.println(request);
if(stmt.executeUpdate("UPDATE `users` SET `users`.`first_name`=null,`users`.`last_name`=null,`users`.`age`=null,`users`.`role`=null,`users`.`gender`= 3 WHERE `users`.`id` LIKE 10") > 0) {
return UPDATE_SUCCESS;
}
return SQL_ERROR_OCCURED;

我必须准确地说,工作示例中硬编码的请求来自非工作示例中打印的请求的复制和粘贴

最佳答案

只是一个建议LIKE 作用于字符串,通常与通配符一起使用

可能是你需要的
如果您需要精确匹配,请使用 equal

UPDATE `users` 
SET `users`.`first_name`=null,
`users`.`last_name`=null,
`users`.`age`=null,
`users`.`role`=null,
`users`.`gender`= 3
WHERE `users`.`id` = 10

如果您需要模式匹配,请使用 like 和通配符,例如;

UPDATE `users` 
SET `users`.`first_name`=null,
`users`.`last_name`=null,
`users`.`age`=null,
`users`.`role`=null,
`users`.`gender`= 3
WHERE `users`.`id` LIKE '%10%'

关于java - 我使用逐步构建的 sql 请求不断收到 SQLError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57510754/

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