0
こんにちは、私はこの単純なjavaを行うと私は日食から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テーブルを作成しました。 編集:これを試したとき、「テーブルIDが既に存在します」と「UNIQUE制約が失敗しました:Identity.id」 – Issam
正常な接続メッセージが表示されると、SQLiteはファイルを作成するため、パス上に存在しません。別のパスを試してみてください。そうすれば、SQLiteは新しいファイルを作成します。その後、テーブルを作成して再度行を挿入してみてください。 – mvantroba
私はあなたが私のポイントを持っているとは思わない。パスは通常、データベースファイルがどこに接続できるようにするために使用されます。ランダムなパスを指定すると、ファイルや接続が正常に正常に行われません。私は別のパスを入れようとしましたが、ファイルを作成できませんでした。 – Issam