簡體   English   中英

在現有記錄中插入值。 sqlite使用准備好的語句

[英]Insert values in existing record. sqlite using prepared statement

我想使用准備好的語句將值插入到現有記錄中。 該記錄的值是最后插入的記錄,我嘗試了LAST函數和MAX但它似乎沒有用,我也嘗試了INSERT內的SELECT語句,但是沒有運氣。

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

}

我使用更新而不是插入:

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM