我有一个表格,我希望将数据插入但不是现有数据。
举个例子,我有一个日期栏和一个客户。同一个客户不能两次拥有相同的日期,所以我有一个名叫卡尔的客户,他是星期一。如果我试图将卡尔添加到星期一,当他星期一已经存在时,就不应该这样做。我该怎么做呢?假设我使用JTextFields输入名称和日期。
到目前为止,我得到了这个插入有效的数据(虽然没有检查它是否已经存在!)
s.executeQuery ("SELECT * FROM customer");
s.executeUpdate("INSERT INTO customer values ('"+name.getText()+"', '"+day.getText()+"')");
如何检查我在名称textField和day textField中输入的内容是否存在于同一行?
提前致谢
答案 0 :(得分:0)
试试这个
PreparedStatement s = connection.prepareStatement("SELECT * FROM customer WHERE name=? AND date=?");
s.setString(1, name.getText());
s.setString(2, day.getText());
ResultSet result = s.executeQuery ();
if(result.next()) {
// dupilcate records present. don't add
} else {
// add records to table.
s.executeUpdate("INSERT INTO customer values ('"+name.getText()+"', '"+day.getText()+"')");
}
答案 1 :(得分:0)
从数据库的角度来看,@ Kocko已经建议你可以创建一个唯一的约束。 现在,如果您想在输入文本框时进行检查,那么您可以从表中缓存数据,然后在键入或完成输入时进行检查,但是您需要考虑所有人都可以插入的点等。 您也可以使用Ajax获取帮助,无需加载整个页面即可无需进入服务器。