【问题标题】:Can't figure out how to get rid of syntax error on mysql无法弄清楚如何摆脱mysql上的语法错误
【发布时间】:2019-04-16 21:54:41
【问题描述】:

我正在尝试在 java 主文件上运行一条语句,并且我能够连接到数据库,但无法运行 sql 语句 我的代码是:

try {
            System.out.println("Connecting to the database...");
            conn=DriverManager.getConnection(DB_URL,USER,PASS);
            System.out.println("Connected to database successfully");
            System.out.println("Inserting");
            stmt=conn.createStatement();
            String sql="USE TheEmployeeDatabase" +
                    "SELECT * FROM EmployeeTable";
            stmt.executeUpdate(sql);
            System.out.println("worked");
        }  catch (SQLException e) {
            e.printStackTrace();
        }

并得到错误

You have an error in your SQL syntax

【问题讨论】:

  • 如果您打印 String sql 的值或在调试器中检查它,您会看到您已将数据库名称与 SELECT 关键字融合在一起。
  • 此外,请注意在 JDBC URL 中指定数据库是传统的做法,而不是通过 USE 语句。另外,我怀疑——但尚未验证——USE 需要是一个单独的语句,而不是SELECT 语句的修饰符。在这种情况下,您至少需要在两个语句之间使用分号。
  • @JohnBollinger 我有 JBDC URL。我应该把它放在声明中的什么地方?
  • 您没有将 JDBC URL 放在语句中。您能否在问题中包含您的 JDBC URL(没有任何私人信息)?

标签: java mysql database intellij-idea


【解决方案1】:

只要架构名称TheEmployeeDatabase1DB_URL 的一部分,您就不需要USE TheEmployeeDatabase 语句。

你的陈述应该是:

SELECT * FROM EmployeeTable

【讨论】:

  • 非常感谢。你将如何输出结果?
  • 您正在使用executeUpdate。当您想要在数据库中插入、更新或删除某些内容时使用此选项。当你想选择一些东西时,你应该使用executeQuery,它会返回一个ResultSet。阅读有关 StatementResultSet 的 Java 文档。
【解决方案2】:

String sql="USE TheEmployeeDatabase "

【讨论】:

  • USE TheEmployeeDatabase SELECT * FROM EmployeeTable 也不是有效的 SQL 语句。
  • 如何显示select语句的结果
猜你喜欢
  • 2011-02-18
  • 2012-02-17
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
相关资源
最近更新 更多