sql检查表是否包含值?

uhry853o  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(353)

我´我是sql新手。我的目标是,创建一个程序,它应该检查某个表是否具有某个值。我´我写了这个方法

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

但是在执行这个语句之后,我如何证明它是否成功(查询是否返回了一些东西)?如果执行后的语句将返回某些内容,我可以轻松地使用if语句进行检查。

f2uvfpb9

f2uvfpb91#

如果数据库中没有返回行,那么sql语句可以成功返回,因此使用 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() 尝试将结果指针移动到下一行并返回是否有要返回的行。这样,如果成功并有结果ir返回 true 成功而不是结果,它会回来 false . 如果出了问题,您的异常处理将负责其余的工作。

pu3pd22g

pu3pd22g2#

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

相关问题