0
大家好,我有這個簡單的java來做,我試圖從eclipse連接到sqlite數據庫,但它根本不起作用。無法從eclipse連接到sqlite?
這裏是我的代碼:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseConnection {
private String pathDB="C:\\sqlite\\test.db";
private Connection connection=null;
private Statement statement=null;
public DatabaseConnection(String path){
pathDB= path;
}
public void connect() {
try {
Class.forName("org.sqlite.JDBC");
connection= DriverManager.getConnection("jdbc:sqlite:" + pathDB);
statement= connection.createStatement();
System.out.println("Connection to " + pathDB + " "+ "successful");
} catch (ClassNotFoundException notFoundException) {
notFoundException.printStackTrace();
System.out.println("Connection Error!");
} catch (SQLException sqlException) {
sqlException.printStackTrace();
System.out.println("Connection Error!");
}
String query="Insert into Identity values(0,'issam','[email protected]')";
try {
statement.executeUpdate(query);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void close() {
try {
connection.close();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
和主類:
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
DatabaseConnection connection= new DatabaseConnection("test.db");
connection.connect();
connection.close();
}
}
所以我有這樣的SQLite數據庫,但每當我運行的代碼,它總是給我:連接到「路徑」是成功的,無論我把什麼道路...
我想我已經做了一切正常,我下載了sqlite JDBC文件並添加它: enter image description here
我嘗試添加一個新行到數據庫表,但它總是給我:
Connection to test.db successful
java.sql.SQLException: no such table: Identity
at org.sqlite.core.NativeDB.throwex(NativeDB.java:397)
at org.sqlite.core.NativeDB._exec(Native Method)
at org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
at com.issam.iamcore.DatabaseConnection.connect(DatabaseConnection.java:41)
at com.issam.iamcore.Main.main(Main.java:10)
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (Connection is closed)
at org.sqlite.core.DB.newSQLException(DB.java:890)
at org.sqlite.core.CoreStatement.internalClose(CoreStatement.java:109)
at org.sqlite.jdbc3.JDBC3Statement.close(JDBC3Statement.java:35)
at com.issam.iamcore.DatabaseConnection.close(DatabaseConnection.java:63)
at com.issam.iamcore.Main.main(Main.java:11)
任何幫助將appreeciated,謝謝!
我不認爲問題在這裏。我總是得到成功的連接消息,無論我放哪個路徑,所以一定有問題。我有在數據庫中創建的身份表。 編輯:當我嘗試這個,我得到:「表身份已經存在」和「唯一約束失敗:身份.id」 – Issam
這是一個正常的行爲,當你獲得成功的連接消息,因爲SQLite創建文件,如果它在路徑上不存在。嘗試不同的路徑,以便SQLite爲您創建一個新文件,然後嘗試創建表並重新插入行。 – mvantroba
我不認爲你明白我的觀點。該路徑通常用於顯示數據庫文件的位置,以便它可以連接到它,如果我給出一個隨機路徑,那麼不會有任何文件和連接通常不會成功。我只是嘗試另一條路徑,它沒有創建任何文件,我仍然得到「身份表已存在」消息。 – Issam