例如:
select name from person where id=2;
我想知道这一行是否存在,并根据它的存在执行某项任务。我想使用 jdbc 来做到这一点。
用于PreparedStatement
调用此选择查询,
成功执行查询后,您将ResultSet
返回一个实例,您可以通过调用来检查next()
它是否返回 true,这意味着选择了一行
if(resultSet.next()){
//yes exist
}
Connection conn = DriverManager.getConnection(url , databaseUserName, databasePassword);
Statement stmt = conn.createStatement();
ResultSet result = null;
result = stmt.executeQuery("select name from person where id=2;");
if(!result.isBeforeFirst()){
System.out.println("No Data Found"); //data not exist
}
else{
// data exist
}
如果光标在第一行之前,isBeforeFirst() 返回 true;如果光标位于任何其他位置或结果集不包含任何行,则返回 false
ResultSet中没有hasNext()方法。next()方法将光标移动到下一行,如果有行则返回 true。
if(resultSet.next()){
//do something
}
else{
//no next row found
}
您还可以使用 JdbcTemplate.queryForList如果没有行则返回一个空列表。
db.queryForList(sql, params).isEmpty();