gpt4 book ai didi

java - 执行更新语句

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

我尝试使用 UPDATE 语句将日期更新到表中,但每次这样做都会出错。我尝试了多种方法,但仍然出现错误。这就是我正在尝试做的事情

public void updateTeacher(Teacher a)
{
int f = Integer.parseInt(a.getiD());

String query = "UPDATE teacher SET (NAME='" + a.getNaMe() + "' ADDRESS='" + a.getAddRess() + "' PHONE_NO="+ a.getPhOne() + " EMAIL='" + a.geteMail() + ") WHERE ID =" + f;

try
{
stmt.executeUpdate(query);

}
catch(SQLException e)
{
System.out.println("Problem in Query");
e.printStackTrace();
}
}

这样我得到以下错误

Problem in Query com.mysql.jdbc.exceptions.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 'ADDRESS='Lahore, Pakistan' PHONE_NO=2147483647 EMAIL='n.nadeem@bnu.edu.pk WHERE ' at line 1

请告诉我我哪里错了,并请更新声明。

最佳答案

首先,您根本不应该使用字符串连接,而应该使用参数化查询,因为连接会使代码变得困惑并导致 SQL 注入(inject)问题。

也就是说,代码中的另一个问题是您设置的值之间缺少逗号。应该是:

String query = "UPDATE teacher SET NAME='" + a.getNaMe() + "' , ADDRESS='" + a.getAddRess() + "' , PHONE_NO="+ a.getPhOne() + " , EMAIL='" + a.geteMail() + "' WHERE ID =" + f;

了解有关如何使用 prepared statements 的更多信息.

关于java - 执行更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632508/

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