2015-04-07 13 views
-3

我要的是從我的數據庫,我救了我的工作區文件夾中獲取數據,我也安裝了最新的sqlite-JDBC JAR ...我想在java上連接我的數據庫,可能是什麼原因造成的錯誤?

我跟着這裏的TUTS http://www.tutorialspoint.com/sqlite/sqlite_java.htm 這裏是我的代碼:

 import java.sql.*; 
     import javax.swing.*; 

public class sqliteConnection { 
Connection conn = null; 

public static Connection dbConnector(){ 
    try{ 
     Class.forName("org.sqlite.JDBC"); 
     Connection conn = DriverManager.getConnection("jdbc:sqlite:TR.sqlite","",""); 
     JOptionPane.showMessageDialog(null, "Connection Successful"); 
     Statement stmt = null; 

     stmt = conn.createStatement(); 
     ResultSet rs = stmt.executeQuery("SELECT * FROM admin_tbl;"); 
     while (rs.next()) { 
      int id = rs.getInt("admin_id"); 
      String user = rs.getString("username"); 
      String pass = rs.getString("password"); 
      System.out.println("ID = " + id); 
      System.out.println("NAME = " + user); 
      System.out.println("ADDRESS = " + pass); 
      System.out.println(); 
      } 
      rs.close(); 
      stmt.close(); 
     return conn; 
    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
     System.out.println(e); 
     return null; 
    } 
} 

} 

首先我得到的「連接成功」,那麼 我得到這個錯誤的結果...

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: admin_tbl) 

我在Java的新,所以請裸跟我......我 一直使用谷歌搜索幾個小時,仍然沒有得到任何答案。

+3

沒有這樣的表。這通常意味着「沒有這樣的桌子」。檢查你的數據庫以驗證表的實際名稱。 – Stultuske

+0

什麼是你的數據庫模式。它似乎你沒有一個名爲'admin_tbl' – Saif

+0

tnx快速響應的表,是的,我沒有檢查並重新創建數據庫的一致性,仍然得到錯誤...我也更新了我的工作區上的文件,並確保有一個數據輸入... – johnguild

回答

0

我認爲你需要給你的數據庫文件的路徑。目前,驅動程序管理器無法找到表格所在的數據庫。

嘗試這樣的:

String path=this.getClass().getResource("somedatabase.db").getPath(); 
conn = DriverManager.getConnection("jdbc:sqlite:"+path); 

凡在你的系統中的數據庫文件的路徑的路徑。

+0

一些靜態錯誤來了..但是我嘗試把這樣的完整路徑.. jdbc:sqlite:C:\\ Users \\ johnguild \\ workspace \\ teacherRecords \\ src \\ teacherRecords \\ TR.sqlite 它的工作,但這將罰款,如果我安裝完成的應用程序差異PC .. ?? – johnguild

+1

我最近得到了我想要的......謝謝你的回答。 我輸入了這段代碼.. String path = sqliteConnection.class.getResource(「TR.db」)。getPath(); 然後將我的conn代碼更改爲... Connection conn = DriverManager.getConnection(「jdbc:sqlite:」+ path,「」,「」); 我讓你的答案作爲我的問題的答案..再次tnx – johnguild

相關問題