gpt4 book ai didi

java - MySQL 查询在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效

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

我在 Java 编程方面完全是新手,但我正在努力工作。我进行了广泛的搜索,但我无法弄清楚,尽管许多初学者程序员也遇到了同样的问题..

我遇到了这个 Java <> MySQL 问题,但我无法解决它!

如果我在 phpMyAdmin 中执行此查询:

SET count = 0; UPDATE tablename SET table_id = count:= count + 1;  
ALTER TABLE tablename AUTO_INCREMENT = 1;

它按照我想要的方式工作,重置 ID(在删除一行后),它可能不是最优雅的解决方案,但它可以完成工作。

但是一旦我从 eclipse 执行相同的查询,我的控制台就会像圣诞树一样亮起,然后我得到:

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 'UPDATE tablename SET table_id = @count:= @count + 1; ALTER TABLE tablename AU' at line 1

错误...检查我的语法。它在 phpMyAdmin 中工作。我的Eclipse Java方法:

public void resetDBID(){
try{
// query to reset menu_id manly after delete row
Statement statement = con.connection.createStatement();
String sset;
sset = "SET @count = 0; "
+ "UPDATE afhaalmenus SET menu_id = @count:= @count + 1; "
+ "ALTER TABLE afhaalmenus AUTO_INCREMENT = 1;";

statement.execute(sset);

} catch(SQLException ex){
String message = "rest ID fail";
JOptionPane.showMessageDialog(null, message, "method fail", JOptionPane.INFORMATION_MESSAGE);
ex.printStackTrace();
}
}

我在这里缺少什么?或者做错事...预先感谢您的所有帮助!

最佳答案

您可以使用addBatch

String s1 = "SET @count = 0";
String s2 = ...

try {
// query to reset menu_id manly after delete row
connection = database.getConnection();
Statement statement = connection.createStatement();
statement.addBatch(s1);
statement.addBatch(s2);
statement.addBatch(s2);
s.executeBatch();
connection.commit();
} catch (SQLException e) {
connection.rollback();
throw e;
} finally {
close(statement);
close(connection);
}

关于java - MySQL 查询在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21936864/

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