2016-07-04 4 views
0

Привет, ребята, поэтому у меня есть эта простая java, и я пытаюсь подключиться к базе данных sqlite из eclipse, но она не работает вообще.Не удается подключиться к sqlite из eclipse?

Вот мой код:

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, но всякий раз, когда я запускаю код всегда дает мне: Подключение к «путь» был успешным, независимо от того, какой путь я положил ...

Я думаю, что все сделано правильно, я загрузил файл JDBC sqlite и добавил его: 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, спасибо!

ответ

0

Вы успешно подключены к базе данных, но не создать таблицу Identity перед выполнением вставки запроса, так как он говорит, в трассировке стека:

Connection to test.db successful 
java.sql.SQLException: no such table: Identity 

вызовов это перед вставкой строки:

String createQuery = "CREATE TABLE Identity (id INT PRIMARY KEY NOT NULL, name TEXT, email TEXT)"; 
statement.executeUpdate(createQuery); 
+0

Я не думаю, что проблема здесь. Я ВСЕГДА получаю сообщение succesfull connection, все, что я написал, поэтому проблема должна быть. И у меня была таблица идентификации, созданная в базе данных. Редактировать: Когда я это пробовал, я получил: «таблица Identity уже существует» и «UNIQUE constraint failed: Identity.id» – Issam

+0

Это нормальное поведение, когда вы получаете сообщение об успешном подключении, потому что SQLite создает файл для вас, если он не существует на пути. Попробуйте использовать другой путь, чтобы SQLite создавал для вас новый файл, а затем попытался создать таблицу и снова вставить строку. – mvantroba

+0

Я не думаю, что вы поняли мою точку зрения. Путь обычно используется, чтобы показать, где находится файл базы данных, чтобы он мог подключиться к нему, если я даю случайный путь, не будет никакого файла, и соединение не будет успешным в обычном режиме. Я просто попробовал поместить другой путь, и он не создал никакого файла, и я все еще получаю сообщение «идентификационная таблица уже существует». – Issam

Смежные вопросы