【问题标题】:MySQL Query works in PhpMyAdmin but not in JAVA EclipseMySQL Query 在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效
【发布时间】:2014-03-23 02:40:14
【问题描述】:

我是 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: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 'UPDATE 附近使用正确的语法 表名 SET table_id = @count:= @count + 1; ALTER TABLE 表名 第 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();
    }
}

我在这里缺少什么?还是做错了... 提前感谢您的所有帮助!

【问题讨论】:

  • 将单个语句添加到批处理中;然后执行批处理并提交
  • 是的!!!!我用谷歌搜索了你的意思,它奏效了!非常感谢!!!!
  • 不懂Java(多年没接触过)但是这里使用的createStatement / execute 是否支持单次执行中的多个SQL 语句?
  • 如果有效,请添加解决方案作为答案。

标签: java mysql eclipse phpmyadmin


【解决方案1】:

你可以使用 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);
}

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多