例如:
select name from person where id=2;
我想知道这一行是否存在,并根据其存在执行某项任务。 我想用jdbc做到这一点。
答案 0 :(得分:14)
使用PreparedStatement
来调用此选择查询
成功执行查询后,您将返回ResultSet
的实例,您可以通过调用next()
进行检查,如果它返回true,则表示已选择行
if(resultSet.next()){
//yes exist
}
答案 1 :(得分:4)
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答案 2 :(得分:4)
ResultSet 中没有 hasNext()方法。 next()方法将光标移动到下一行,如果有一行则返回true。
if(resultSet.next()){
//do something
}
else{
//no next row found
}
答案 3 :(得分:0)
您还可以使用JdbcTemplate.queryForList,其中returns an empty list if there are no rows.
db.queryForList(sql, params).isEmpty();