2015-04-28 40 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"); 

}