我是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语句进行检查。
如果没有从数据库返回行,则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
。 如果出了问题,您的异常处理将照顾他的休息。
是的,您的方法和SQL查询已经足够检查了。 如果查询中没有行输出,则将为NULL。