2016-05-16 91 views
0

以下是我的Java代碼。在Linux中,它工作正常,但在Windows中,我無法將數據插入本地磁盤上的數據庫。在NetBeans中,除了.jar以外,沒有問題。 JDBC驅動程序看起來不錯。SQLite Java JDBC插入

連接到數據庫:

public static Connection connectToDb() { 
    try { 
     Connection connection = null; 
     DriverManager.registerDriver(new org.sqlite.JDBC()); 
     //LINUX PATH 
     if (OSDetector.isLinux()) { 
      connection = DriverManager.getConnection("jdbc:sqlite:/home/" + userNameLinux + "/PDFMalwareDataAnalyser/DatabaseSQLite/database.db", NAME, PASSWORD); 
      //WINDOWS PATH 
     } else { 
      connection = DriverManager.getConnection("jdbc:sqlite:C:\\PDFMalwareDataAnalyser\\DatabaseSQLite\\database.db", NAME, PASSWORD); 
     } 
     connection.setAutoCommit(true); 
     if (connection != null) { 
      System.out.println("Otvorená."); 
     } 
     return connection; 
    } catch (SQLException e) { 
     System.err.println(e.getClass().getName() + e.getMessage()); 
     // System.exit(0); 
    } 
    return null; 
} 

插入:

public void insertDataToDatabase(int idReport) throws SQLException { 
    connection = new SQLiteJDBC().connectToDb(); 
    PreparedStatement insertCommunication = connection.prepareStatement("insert into table_communication values(?,?);"); 
    insertCommunication.setString(2, communicationsFinal.toString()); 
    try { 
     insertCommunication.executeUpdate(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    insertCommunication.close(); 
    connection.close(); 
    System.out.println("1. --- Insert do tabuľky TABLE_COMMUNICATION OK ---"); 
} 
+0

我不明白你想說什麼。請更清楚。另外,你有什麼例外? –

+0

我想插入數據到數據庫...在NetBeans中,我可以插入,但.jar文件生成數據後沒有插入在Windows中,但在Linux中是奧基.. – bilinxe

回答

0

試試這個:

connection = DriverManager.getConnection("jdbc:sqlite:C:/PDFMalwareDataAnalyser/DatabaseSQLite/database.db") 
+0

連接是okey,因爲我可以從數據庫中讀取數據.. – bilinxe

+0

您的代碼工作正常 [數據庫類](http://pastebin.com/embed_iframe/SZhUCLFD) [Main](http://pastebin.com/embed_iframe/5dfEZT8j) –

+0

沒有結果...也在之後。 jar生成? – bilinxe