【问题标题】:Trying to connect to Java Derby database using JDBC尝试使用 JDBC 连接到 Java Derby 数据库
【发布时间】:2012-10-13 08:57:48
【问题描述】:

我有以下代码:

Connection conn = null;
    Statement stmt = null;

    // MySQL connection details.
    String username = ("username");
    String password = ("password");
    String url = ("jdbc:derby://localhost:1527/OnlineLibrary");

    try {

        // Connect to database. 
        Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();               
        conn = DriverManager.getConnection (url, username, password);            
        stmt = conn.createStatement();

        // Get data.
        String query = ("SELECT PersonNo, Forename, Surname FROM Person;");                       
        ResultSet rs = stmt.executeQuery(query);               
        while (rs.next()) {                
            System.out.println("Person: no: " + rs.getInt("PersonNo") + " name: " + rs.getString("Forename") + " " + rs.getString("Surname"));
        }                 

        // Disconnect from database.
        stmt.close();
        conn.close();
    }
    catch(Exception ex) {
        Java_Utils.printStackTrace("Error connecting to database", ex, true);    
    }        

这给了我:

Error connecting to database
org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
org.apache.derby.client.am.Statement.executeQuery(Unknown Source)
misc.Simple_JDBC_Test.main(Simple_JDBC_Test.java:32)

在我看来一切都很好。我可以使用连接池连接到数据库,但我不明白上述错误。

【问题讨论】:

  • 第 32 行是 ResultSet rs = stmt.executeQuery(query);
  • 从不吞下异常开始 - 捕获 SQLException 并查看它的错误消息是什么
  • 谢谢。 SQL 有一个 ;没有必要的时候。不过我必须使用更好的异常处理。
  • 您可以在这里找到一些简单的异常处理代码示例:wiki.apache.org/db-derby/UnwindExceptionChain

标签: java jdbc derby


【解决方案1】:

@摩根先生,
使用 PreparedStatement 代替 Statement,表示替换

结果集 rs = stmt.executeQuery(query);

ProblemStatement pStmt = dbConnection.prepareStatement(query);

结果集 r = pStmt.executeQuery();

完成此操作后请显示您的输出!

【讨论】:

    【解决方案2】:

    删除语句末尾的分号 ; 符号:

    String query = ("SELECT PersonNo, Forename, Surname FROM Person");
    

    然后直接在您的OnLineLibrary 数据库中执行相关查询以检查其输出以及其语法是否正确:

    SELECT PersonNo, Forename, Surname FROM Person
    

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 2015-07-10
      相关资源
      最近更新 更多