SQL 检查 table 是否包含值?

SQL check if table contains value?

我是 SQL 的新手。我的目标是创建一个程序,该程序应检查某个 table 是否具有特定值。我写了这个方法

 public boolean existString(final String query) {
    try {
        final Statement statement = this.conn.createStatement();
        result = statement.executeQuery(query);
        return true;
    } catch(SQLException e) {
        e.printStackTrace();
        return false;
    }
}

如你所见,它是一个执行SQL语句的方法。我认为这可能是正确的说法:

String query = "select * from table where column1 = 'checkvalue'"; // of course i need to replace table and column and checkvalue

但是在执行这个语句之后,我如何证明它是否成功(查询 return 是什么)?如果语句在执行后会 return 一些东西,我可以轻松地使用 if 语句来检查。

是的,您的方法和 SQL 查询足以进行检查。如果查询中没有行输出,则为空。

如果数据库中没有行 return,SQL 语句可以 return 成功,所以使用 SQLException 不会帮助你,如果查询正确但没有匹配项。

public boolean existString(final String query) {
    try {
        final Statement statement = this.conn.createStatement();
        result = statement.executeQuery(query);
        return result.next();
    } catch(SQLException e) {
        e.printStackTrace();
        return false;
    }
}

您应该利用以下事实:result.next() 尝试将结果指针移动到下一行,并且 return 无论是否有行指向 return。这样,如果成功并且有结果 ir returns true 并且成功而没有结果,它 returnsfalse。如果出现问题,您的异常处理将负责后续工作。