MySQL Query 在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效

Posted

技术标签:

【中文标题】MySQL Query 在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效【英文标题】:MySQL Query works in PhpMyAdmin but not in 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 语句? 如果有效,请添加解决方案作为答案。 【参考方案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);

【讨论】:

以上是关于MySQL Query 在 PhpMyAdmin 中有效,但在 JAVA Eclipse 中无效的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 5.5 /phpmyadmin 简单查询之谜

在Query中获取MYSQL查询执行时间

phpMyAdmin中的慢查询但Mysql慢查询日志文件中没有[关闭]

mysql_query 总是用 SELECT EXISTS 返回 false

SQL Sum Query 在 PHPmyAdmin 中有效,但在 Java resutset 中无效

表情符号显示为?在 MySQL 数据库中