如何在插入(SQLite)数据库之前检查数据是否存在。我目前正在使用Java作为平台。
Statement stmt = conn.createStatement();
String query ="SELECT * FROM tb_hall Where Activity_Name'"+txtTime+"'";
ResultSet rs = stmt.executeQuery(query);
if(rs.next()) {
String sql = "Insert into tb_hall (Activity_Name, Organization, Venue, Date, Time) values(?, ?, ?, ?, ?)";
pst = conn.prepareStatement(sql);
pst.setString(1, txtAct.getText());
pst.setString(2, txtOrg.getText());
pst.setString(3, rgbGroup.getSelection().getActionCommand());
pst.setString(4, ((JTextField) date.getDateEditor().getUiComponent()).getText());
pst.setString(5, txtTime.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Saved!");
txtAct.setText(null);
txtOrg.setText(null);
rgbGroup.clearSelection();
date.setDate(null);
txtTime.setText(null);
// ...
答案 0 :(得分:0)
您可以尝试使用count
子句检查数据库中是否已存在具有活动名称的任何记录。并根据为该特定活动名称获取的行数,您可以执行进一步的操作。
这将至少让您知道每个查询是否出现问题,或者当前查询是否有问题,因此我们将能够轻松搞清楚。
答案 1 :(得分:0)
我不能肯定地说因为您发布的错误图片已被截止,但我认为您有GUI错误。从图片剪辑来看,GUI组件似乎存在语法错误。如果您可以显示整个错误消息,那将有所帮助。
答案 2 :(得分:0)
如何在将数据插入数据库之前设计一个验证数据的函数?例如:
public boolean isDataValid(Data data) {
.....
}
public void saveDataToDB(Data data) {
if(isDataValid(data)) {
// write data to db
} else {
// invalid data handling
}
}