2015-04-07 50 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

相关问题