如何判断表中是否存在行?

时间:2012-07-02 06:14:34

标签: java sql jdbc

例如:

select name from person where id=2;

我想知道这一行是否存在,并根据其存在执行某项任务。 我想用jdbc做到这一点。

4 个答案:

答案 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();