2017-03-19 38 views
1

所以首先我已經看到過這個問題之前 - 我看了以前的答案,並試圖用它來排序我的問題,但我不能。沒有找到合適的驅動程序jdbc.sqlite

我正在創建一個庫系統,並且已經編寫了註冊類和登錄類的代碼,並且爲數據庫創建了一個類。當我嘗試運行該程序時,我收到一條消息,指出沒有找到合適的驅動程序,隨後是數據庫的文件路徑。這是我的數據庫類:

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



    public class javaConnect { 
    Connection conn; 

public static Connection ConnecrDB() { 
    try { 
     Class.forName("org.sqlite.JDBC"); 
     Connection conn=DriverManager.getConnection("jdbc.sqlite:process_f/Users/conorcurtis/Desktop/UNI/GCU IP Library/LibraryProject.sqliteiles"); 
     return conn; 
    } catch(Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
     return null; 
    } 

我完全不知道去哪裏此所以任何幫助,將不勝感激。謝謝!

+0

你是否在庫中添加了sqlite jar? –

+0

我以爲我有,但看起來我沒有!謝謝。但是,現在它給了我一個新的錯誤,它是java.lang.ClassNotFoundException:org.sqlite.JDBC – Conor

+0

如果您使用的是Eclipse,請執行Project-> Porperties-> Java Build Path-> Libraries - > Add Extenal Jars。在此之後添加你的sqlite jar。 –

回答

0

這裏可能發生的事情是您的驅動程序不在您的類路徑中。您當前的問題是您正在動態加載驅動程序,但找不到它。

您可以在調試時通過嚮導入指令變成一個編譯時錯誤:

import org.sqlite.JDBC; 

不同的是,導入指令是一個編譯時的依賴,而調用的Class.forName建立運行時間依賴性。通常我們這樣做,所以我們可以改變使用哪些數據庫而不用重新編譯(但是在這裏你的連接字符串是硬連線的,所以沒有必要動態地進行)。例如,我們可以允許配置連接字符串,然後動態加載相應的驅動程序。

因此,現在,添加該導入行並排除找不到類的原因。機會是你有一個構建或類路徑問題。例如,如果您使用的是maven,您可能希望將它添加到那裏。

編譯完成後,可以刪除import指令並將錯誤重新轉換爲運行時錯誤。

但基本的清單是:

  1. 是圖書館可用?
  2. 它在搜索路徑嗎?
  3. 你有沒有自動依賴管理工具(如maven),作爲一個依賴失蹤它?
相關問題