gpt4 book ai didi

Java Mysql删除日期之间的记录语法错误

转载 作者:行者123 更新时间:2023-11-29 05:13:21 25 4
gpt4 key购买 nike

我试图在 Java 中运行一个删除两个日期之间的所有记录的方法,但是,它给我一个 Synax 错误。这是代码:

public void updateIntegraton(String dateInit, String dateEnd)
{
Connection conn = ConnectionManager.getConnection();
String sql_delete = "DELETE FROM my_schema.my_table WHERE DATE(day_date) BETWEEN DATE(?) AND DATE(?)";
String sql_safe_updates = "SET SQL_SAFE_UPDATES = 0";
PreparedStatement ps_delete;
PreparedStatement ps_safe_updates;

try {
ps_safe_updates = conn.prepareStatement(sql_safe_updates);
System.out.println("Setting safe updates off.");
ps_safe_updates.execute();
ps_delete = conn.prepareStatement( sql_delete );
ps_delete.setString(1, dateInit);
ps_delete.setString(2, dateEnd);
System.out.println("Delete Query: " + ps_delete);
System.out.println("Deleting all records between dates " + dateInit +" and "+ dateEnd);
ps_delete.execute(sql_delete);
System.out.println("Deleted records. ");
} catch (SQLException e) {
System.out.println("Something went wrong on Delete");
e.printStackTrace();
}
}

如您所见,我在替换“?”后打印了 delete sql 语句带值的参数。这是它在控制台上打印的示例:

Delete Query: com.mysql.jdbc.PreparedStatement@1686d1f: DELETE FROM my_schema.my_table WHERE DATE(day_date) BETWEEN DATE('2016-04-01') AND DATE('2016-04-08')

我在 MySQL Workbench 上运行完全相同的查询并且行被删除,但是当我运行我的 java 代码时我得到这个语法错误:

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 '?) AND DATE(?)' at line 1

我已经使用相同的语法运行其他 sql 语句并且没有出现错误。我脑子里唯一的事情是我代码的 ps_delete.execute(sql_delete) 部分中使用的“执行”方法不起作用,但我使用了“executeUpdate”和“executeQuery”方法,它们也给我错误。

我正在使用 mysql-connector-java-5.0.8-bin.jar 库创建到我的 MySQL 库的连接。

知道为什么会这样吗?我该如何解决?

谢谢

最佳答案

 ps_delete.execute(sql_delete); // you execute the not prepared request

在我看来应该是:

 ps_delete.execute();

关于Java Mysql删除日期之间的记录语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36504752/

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