从SQLite数据库中删除

时间:2016-11-27 19:23:48

标签: java sqlite

我在Eclipse中有一个与我的Java项目相关联的SQLite数据库。当我提供硬编码的指定ID(例如' 3')时,我能够从数据库中删除条目。我试图改变代码,以便让用户手动传递任何数字并让它删除该条目。

public static String deleteRecords(String NumberDelete){
    Connection dbConnection = null;
    Statement statement = null;
    try{
        dbConnection = getDBConnection();
        dbConnection.setAutoCommit(false);
        statement = dbConnection.createStatement();
        String sql = "DELETE from employees where ID='NumberDelete';";
        statement.executeUpdate(sql);
        dbConnection.commit();
        statement.close();
        dbConnection.close();
    } catch(Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }
    return NumberDelete;
}

2 个答案:

答案 0 :(得分:0)

您需要使用PreparedStatement传递参数来查询和执行它,方法将如下所示:

public static String deleteRecords(String NumberDelete) {
    Connection dbConnection = null;
    PreparedStatement statement = null;
    String sql = "DELETE from employees where ID= ? ;";
    try {
        dbConnection = getDBConnection();
        dbConnection.setAutoCommit(false);
        statement = dbConnection.prepareStatement(sql);
        statement.setString(1, NumberDelete);
        statement.executeUpdate(sql);
        dbConnection.commit();
        statement.close();
        dbConnection.close();
    } catch (Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }
    return NumberDelete;
}

这将在查询中设置数字并执行它。如果数字类型为int,则您需要使用setInt来设置值。 HerePreparedStatement的javadoc。

答案 1 :(得分:-1)

对于用户输入,您可能需要查看扫描程序类:https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

一旦从用户那里得到一个整数,解析它并将其存储在一个变量中,你就可以简单地使用String连接:

String sql = "DELETE from employees where ID='" + userInput + "';";