mysqlsqlitesql-insertinsert-statement

Insert values in existing record. sqlite using prepared statement


I want to insert values into an existing record using prepared statment. The value of that record is the last record inserted, I tried LAST function and MAX but it didn't seems to work, also I tried SELECT statment inside INSERT with no luck.

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");

}

Solution

  • I used update instead of insert:

        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");
    
    }