我在 jFrame 按钮上有这个:
label.setVisibility(false);
ResultSet rs = state.executeQuery("SELECT Str_Column FROM Table WHERE Str_Column = '"+ jTextField.getText() +"'");
//check for the existance
if(rs.getString("Str_Column").equals(jTextField.getText())){
label.setVisibility(true);
}
else{
new frameForSucceedInput.setVisibility(true);
}
如果 if-case 为 true 或者并不总是显示成功窗口,这就是我不希望发生的情况,它会告诉有关 ResultSet
null 原因冲突的信息,所以我尝试了另一种方法:
if(state.execute("SELECT Str_Column FROM Table WHERE Str_Column = '"+ jTextField.getText() +"'")){
label.setVisibility(true);
}
else{
new frameForSucceedInput.setVisibility(true);
}
state.execute("SQL")
方法说:
return true if the query contains results, return false if the query is a update or no contain results
我已经尝试过 rs.next()
和很多类似的事情,而不是 else 做另一个 if(rs==null)
但不起作用,请帮助
最佳答案
一种非常通用且更简单的方法是使用 SQL 计数函数。
select count(*) from table where str_Column = ?
这样您将得到一条记录,只有一个值,如果该值大于 0,则可以显示该框架。
注意:
- 您应该使用prepared statement这样您就可以在查询中设置参数(您注意到问号了吗?),而不是连接查询的元素。
- 您不应该将与演示文稿(Swing)相关的代码与与数据库相关的代码混合在一起......但我认为您稍后会学到它。
关于java - 如何检查 jFrame 的 MySQL 表中是否已存在唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29742466/