2014-07-11 93 views
0

我有以下JDBC代碼,其中我沒有收到任何錯誤,但不幸的是數據沒有被添加到數據庫中。我正在使用的代碼是:無法使用JDBC在SQLite3數據庫中插入值

 Class.forName("org.sqlite.JDBC"); 
     c = DriverManager.getConnection("jdbc:sqlite:../../clientDb.db"); 
     c.setAutoCommit(false); 

     String expenseUUID = UUID.randomUUID().toString(); 
     expenseUUID = expenseUUID.replaceAll("-", ""); 

     String sqlQuery = "insert into expense (expenseUUID , user_id,expense_description, 
         total_amount, place, per_exp_flag, category " + 
         ",creation_date) values (?,?,?,?,?,?,?,?) "; 


     ps = c.prepareStatement(sqlQuery); 

      ps.setString(1, expenseUUID); 
      ps.setInt(2, user_id); 
      ps.setString(3, description); 
      ps.setInt(4, total_amount); 
      ps.setString(5, place); 
      ps.setInt(6, 1); 
      ps.setInt(7, category); 
      ps.setString(8, creation_date); 


     int result = ps.executeUpdate(); 

     if(result == 1){ 

       b = true; 

     } 

什麼是錯誤?當我嘗試使用select語句時,我在結果集中得到了結果,但爲什麼它沒有插入任何東西?我得到'1'

 int result = ps.executeUpdate(); 

什麼可能是錯誤?我正在使用SQLite3作爲後端數據庫。

+0

任何堆棧跟蹤? – WeMakeSoftware

回答

1

您有c.setAutoCommit(false);,因此您的INSERT實際上不會寫入數據庫直到您c.commit();。在ps.executeUpdate()之後添加該語句。