gpt4 book ai didi

java - 在 Spring JDBC 中更新查询

转载 作者:行者123 更新时间:2023-12-02 11:22:56 25 4
gpt4 key购买 nike

我正在编写一个简单的方法来使用 spring jdbc 更新记录,该方法是

 @Override
public void updateEmployee(Employee e, int id) {
try {
Connection connection = DemoApplicationServiceImpl.getConnection();
Statement statement = connection.createStatement();
String update = "UPDATE salesforce.Employee__c SET First_Name__c = " + e.getFirst() + ", Last_Name__c = "
+ e.getLast() + ", Email__c = " + e.getEmail() + " WHERE Id = " + id;
System.out.println(update);
statement.executeQuery(update);
} catch (Exception ex) {
ex.printStackTrace();
}
}

它给了我一个错误

 psqlexception column "umair" does not exist

umair 甚至不是数据库中的一列

有人可以帮忙吗?

谢谢

最佳答案

您的解决方案可能会导致 SQL 注入(inject)或语法错误,请改用 PreparedStatement它更安全,更有帮助:

String update = "UPDATE salesforce.Employee__c SET First_Name__c = ?, Last_Name__c = ?, Email__c = ? WHERE Id = ? ";
try (PreparedStatement pstm = connection.prepareStatement(update)) {
pstm.setString(1, e.getFirst());
pstm.setString(2, e.getLast());
pstm.setString(3, e.getEmail());
pstm.setInt(4, id);

pstm.executeUpdate();
}
<小时/>

关于您的错误:

您收到该错误是因为您尝试使用如下内容:

SET First_Name__c = umair

但是 String 或 varchar 应该位于两个引号之间:

SET First_Name__c = 'umair'
//------------------^_____^

关于java - 在 Spring JDBC 中更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49797469/

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