1

我想使用准备好的语句将值插入现有记录。该记录的值是插入的最后一条记录,我尝试了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");

}
4

1 回答 1

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

}
于 2015-04-29T01:05:18.603 回答