我试图检查数据库是否具有来自getComments2的评论匹配行。
如果存在这样的行,继续进行下一个数据检查,否则它将执行插入语句
运行此代码后,它给了我:
代码:
builder.like(builder.lower(join.get(myTable.lib)),"%" + search.toLowerCase() + "%"));
答案 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)
您可以在查询中使用合并,而不是在代码中检查条件。否则,您可以在查询中使用“插入”或“替换”。