我需要從一個SQLite文件加載數據到我在Netbeans中開發的Java程序。 該文件將通過擺動菜單項加載。我使用sqlitejdbc作爲驅動程序。JDBC SQLite的Netbeans中:沒有合適的驅動程序找到
這裏是代碼塊我認爲是重要的:
// header stuff
package aufgabe_9;
import java.sql.*;
//...
// menu item opening the file
private void mitemOpenFileActionPerformed(java.awt.event.ActionEvent evt)
{
/**
* Handles the dialogue for selecting and loading file.
*/
JFileChooser fileChoose = new JFileChooser();
fileChoose.showOpenDialog(this); //'this' calls the current object
//Load the sql file
try {
String filePath = fileChoose.getSelectedFile().toString();
Connection conn = DriverManager.getConnection("jdbc:sqlite:" +
filePath);
//Close the connection
if (conn != null)
conn.close();
}
catch (SQLException e){System.err.println("Database problem: " + e);}
}
}
//...
當運行程序,並通過菜單加載一個文件,我得到以下錯誤:
java.sql.SQLException: No suitable driver found for jdbc:sqlite:/home/levent
/temp/A9AProbeflaeche.db
看完後各自stackexchange帖子,我明白這 問題可以通過(1)格式錯誤的文件的URL或(2)駕駛員不是 加載引起。下面是一些更多的信息:
- 我通過工具添加sqlitejdbc-3.7.2.jar圖書館類路徑 - 通過窗口>庫以及對項目庫 - >項目。
- 我也用this function檢查類路徑。它包含正如預期的jdbc jar文件的路徑。
- 我可以通過服務菜單連接到數據庫,沒有任何問題,所以我可以假設URL是正確的,以及我的系統上運行的sqlite的。
- 一些操作系統信息:我在64位ARCH Linux 3.12.9-2上運行Netbeans 8.0。
誰能告訴我什麼,我在這裏失蹤?任何幫助感謝!
問題解決 下面是對我的作品的代碼:
//...
private void mitemOpenFileActionPerformed(java.awt.event.ActionEvent evt)
{
/**
* Handles the dialogue for selecting and loading file.
*/
JFileChooser fileChoose = new JFileChooser();
fileChoose.showOpenDialog(this);
//Load the sql file
try {
//Get file path
String filePath = fileChoose.getSelectedFile().toString();
//Open connection
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:" + filePath);
//Do stuff...
//Close the connection
conn.close();
}
//"Multicatch":
catch (SQLException | ClassNotFoundException e) {
System.err.println("Database problem: " + e);
}
//...
該死的挺直,非常感謝!我實際上在不同的帖子中閱讀了'Class.forName()'語句,但當時仍然有錯誤,可能是因爲URL格式不正確。另外,由於'DriverManager'的處理,我認爲它已經過時了。它現在完美。 –