java - MySQL JDBC 语句问题

标签 java mysql sql jdbc

我一生都无法弄清楚为什么我不断收到此错误:

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 '*) FROM login' at line 1

我尝试在表名周围使用 ',使用 ` ... 没有任何效果。我能够在计算机上执行完全相同的 SQL 并且它可以工作,但是当程序执行它时它会失败。我只是检查表是否为空(尽管当我尝试从表中提取数据时也遇到相同的错误)。我也尝试过使用 (*) 和 * - 仍然收到错误。还尝试过使用和不使用 ; - 相同的结果。

代码:

public boolean tableIsEmpty(String Table)
{
    String Query = "SELECT COUNT (*) FROM "+Table+";";

    try{
        rs = st.executeQuery(Query);

        rs.next();

        int count = rs.getInt(1);

        if(count > 0)
        {
            return false;
        }
        else{
            return true;
        }
    }catch(SQLException ex){
        Logger.getLogger(DatabaseConnector.class.getName()).log(Level.SEVERE, null, ex);
        return false;
    }
}

我记得在使用 postgresql 之前也遇到过类似的问题,但我添加了 ' ' 并且它起作用了。这是我第一次通过 Java 使用 MySQL,无法弄清楚这一点。

谢谢!

最佳答案

 String Query = "SELECT COUNT (*) FROM "+Table+";";

上面应该是

 String Query = "SELECT COUNT(*) FROM "+Table;
                            ^^               ^^
                            ||               ||
                      //   space removed    ; removed

关于java - MySQL JDBC 语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531882/

相关文章:

java - ArrayList<HashMap<String,String>> 按字母顺序排列

java - Jsoup - 如何处理未找到的元素

mysql - 按每周报告从 SQL 组中选择查询

php - 查询一列中的多个值

mysql - 如何在 sub SELECT 中使用 WHERE?

mysql - 这个 SQL 查询如何转换为 JPQL?

java - 如何获取 Java 版本的完整格式名称?

java - 专注于 JButtons 是如何在 Java 中实际工作的?

asp.net - 如何让 EF 在我的 App_Data 文件夹 MVC 中创建数据库

mysql - 如何在windows server 2008上安装mysqlsla?