2012-10-23 113 views
3

連接到Java Derby數據庫我有以下代碼:嘗試使用JDBC

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) 

一切似乎好了給我。我可以使用連接池連接到數據庫,但我不明白上述錯誤。

+0

這是第32行? – 2012-10-23 12:21:41

+0

第32行是'ResultSet rs = stmt.executeQuery(query);' –

+2

STart通過不吞嚥異常 - 捕獲SQLException並查看其錯誤消息是什麼 – Mark

回答

0

@Mr摩根,
利用PreparedStatement代替聲明,是指取代

結果集RS = stmt.executeQuery(查詢);

ProblemStatement pStmt = dbConnection.prepareStatement(query);

ResultSet r = pStmt.executeQuery();

這樣做後顯示您的輸出!

0

刪除半分符;在你的發言結束標誌:

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

然後在你的OnLineLibrary數據庫directely執行相關的查詢,以檢查它的輸出,如果它的語法是正確的:

SELECT PersonNo, Forename, Surname FROM Person