检查是否存在相应的行插入

时间:2018-02-19 10:34:42

标签: java mysql jdbc

我试图检查数据库是否具有来自getComments2的评论匹配行。

如果存在这样的行,继续进行下一个数据检查,否则它将执行插入语句

运行此代码后,它给了我:

  1. java.sql.SQLException:对空结果集的非法操作(当数据库为空时)或
  2. java.sql.SQLException:结果集结束后(填充数据库时)。
  3. 代码:

    builder.like(builder.lower(join.get(myTable.lib)),"%" + search.toLowerCase() + "%"));
    

2 个答案:

答案 0 :(得分:1)

rs.last()将光标移动到最后一行。然后rs.next()将其移到最后一行,因此rs.getString("Comment")会抛出异常。

正确的逻辑应该是:

boolean exists = false;
while (rs.next() && !exists) {
    if(rs.getString("Comment").equals(getComments2)) {
        exists = true;
    }
}
if (!exists) {
    PreparedStatement ps = conn.prepareStatement("INSERT into predata (topic,comment,date) VALUES (?,?,?)");
    ps.setString(1, url);
    ps.setString(2, getComments2);
    ps.setString(3, getTime1);
    ps.executeUpdate();
}

答案 1 :(得分:-1)

您可以在查询中使用合并,而不是在代码中检查条件。否则,您可以在查询中使用“插入”或“替换”。