2015-04-28 35 views
1

我想使用準備好的語句將值插入到現有記錄中。該記錄的值是插入的最後一條記錄,我試過LAST函數和MAX,但它似乎沒有工作,我也嘗試SELECT表示INSERT內沒有運氣。在現有記錄中插入值。使用準備好的語句的sqlite

public static void insertCoordinates(){ 


    java.sql.Connection c = null; 

    try { 
     String str1 = Singelton.getInstance().getTxtField1().getText(); 
     Class.forName("org.sqlite.JDBC"); 
     c = DriverManager.getConnection("jdbc:sqlite:timeline_DB.db"); 
     c.setAutoCommit(false); 
     PreparedStatement preparedStatement = c.prepareStatement("insert into event_table(bar_length, x_bar, y_bar) values (?, ?, ?) WHERE event_title =?"); 

     preparedStatement.setInt(1, CanvasNewTimeLine.Event_length); 
     preparedStatement.setInt(2, CanvasNewTimeLine.x); 
     preparedStatement.setInt(3, CanvasNewTimeLine.H_LINE); 
     preparedStatement.setString(4,str1); 
     preparedStatement.executeUpdate(); 

     c.commit(); 
     c.close(); 
    } catch (Exception e) { 
     System.err.println(e.getClass().getName() + ": " + e.getMessage()); 
     System.exit(0); 
     System.err.println("problem"); 
    } 
    System.out.println("yesssssss successfully"); 

} 

回答

1

我使用的更新,而不是插入:

public static void insertCoordinates(){ 


    java.sql.Connection c = null; 

    try { 
     String str1 = Singelton.getInstance().getTxtField1().getText(); 
     Class.forName("org.sqlite.JDBC"); 
     c = DriverManager.getConnection("jdbc:sqlite:timeline_DB.db"); 
     c.setAutoCommit(false); 


     String updateTableSQL = "UPDATE event_table SET bar_length = ?, x_bar=?, y_bar=? WHERE event_title = ?"; 
     PreparedStatement preparedStatement = c.prepareStatement(updateTableSQL); 
     preparedStatement.setInt(1, CanvasNewTimeLine.Event_length); 
     preparedStatement.setInt(2, CanvasNewTimeLine.x); 
     preparedStatement.setInt(3, CanvasNewTimeLine.H_LINE); 
     preparedStatement.setString(4,str1); 

     // execute 
     preparedStatement .executeUpdate(); 
     c.commit(); 
     c.close(); 
    } catch (Exception e) { 
     System.err.println(e.getClass().getName() + ": " + e.getMessage()); 
     System.exit(0); 
     System.err.println("problem"); 
    } 
    System.out.println("yesssssss successfully"); 

}