如何在插入(SQLite)数据库之前检查数据是否存在

时间:2017-03-26 08:01:12

标签: java sqlite

如何在插入(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); 

    // ...

不幸的是,它会显示一条很长的错误消息,如下所示:this

3 个答案:

答案 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
    }
}