MySQL查询在PhpMyAdmin中工作,但在JavaEclipse中不工作
我是Java编程的完全新手,但我正在努力学习。我已经进行了广泛的搜索,但我无法找到答案,尽管许多初学者都有同样的问题 我有一个Java MySQL的问题,我不能不去想它 如果我在phpMyAdmin中执行此查询:MySQL查询在PhpMyAdmin中工作,但在JavaEclipse中不工作,java,mysql,eclipse,phpmyadmin,Java,Mysql,Eclipse,Phpmyadmin,我是Java编程的完全新手,但我正在努力学习。我已经进行了广泛的搜索,但我无法找到答案,尽管许多初学者都有同样的问题 我有一个Java MySQL的问题,我不能不去想它 如果我在phpMyAdmin中执行此查询: SET count = 0; UPDATE tablename SET table_id = count:= count + 1; ALTER TABLE tablename AUTO_INCREMENT = 1; 它按照我的要求工作,重置ID(在我删除一行之后),这可能不是最优
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:您有一个
SQL语法错误;检查与您的产品相对应的手册
MySQL服务器版本,以便在“更新”附近使用正确的语法
tablename集合table_id=@count:=@count+1;更改表表名
1号线的AU'
错误。。。检查我的语法。它在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);
}
将单个语句添加到批处理中;然后执行批处理和提交eah!!!!我用谷歌搜索了你的意思,结果成功了!非常感谢!!!!不了解Java(多年没有接触过它),但这里使用的createStatement/execute是否支持在一次执行中使用多个SQL语句?如果有效,请添加解决方案作为答案。