基本上我将一条记录添加到数据库:标题和说明。 我想让它如此,如果标题的值已经存在 - 将(1)或(2)添加到最后以使其可区分。我写了这个函数:Java:虽然记录存在=保持将记录添加到记录的末尾
public boolean existCheck(int userId, String title){
String Validate = "SELECT COUNT(*) FROM memories WHERE userid='"+userId+"' AND title='"+title+"'";
int cnt = 0;
boolean result = false;
try{
rs = st.executeQuery(Validate);
if(rs.next()){
cnt = rs.getInt(1);
System.out.println(cnt);
if(cnt != 0){
result = true;
}
}
}
catch(Exception e){e.printStackTrace();}
return result;
}
它计算该userID和Title有多少条目。如果不是0,则它存在并返回它存在的真。
此代码将记录添加到数据库。
if(existCheck(userId, title) == true){
st.executeUpdate("INSERT INTO memories (userid, title, description) VALUES ('"+userId+"', '"+title+"(1)', '"+desc+"')");
}
else{
st.executeUpdate("INSERT INTO memories (userid, title, description) VALUES ('"+userId+"', '"+title+"', '"+desc+"')");
}
但这个代码的缺点是,如果title(1)已经存在,它会再次添加另一个标题(1)。 当然,我可以做很多if语句,但我确信我可以使用while循环以较少的线条做到这一点。
我不知道如何在这种情况下使用它,但我不希望服务器陷入无限循环。
我该如何申请while()循环呢?
这个解决方案的工作,以什么方式更安全? – arleitiss 2014-12-13 18:51:19
@arleitiss阅读关于SQL注入 – Eran 2014-12-13 18:52:57