在现有记录中插入值。 sqlite使用预处理语句

时间:2015-04-28 20:42:55

标签: mysql sqlite sql-insert insert-statement

我想使用准备好的参数将值插入现有记录中。该记录的值是插入的最后一条记录,我尝试LAST函数和MAX但它似乎不起作用,我在SELECT内尝试了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);
        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 个答案:

答案 0 :(得分:1)

我使用的是update而不是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");

}