jdbc如何确保2行是唯一的

时间:2015-09-24 14:56:48

标签: java jdbc prepared-statement

我有一个insert子句和2个名为my_id和stream_id的列,我希望它能使每一对(my_id,stream_id)都是唯一的。例如,my_id是用户个人唯一ID,它始终相同,stream_id对应不同的帖子。例如,如果my_id为4且stream_id为8,那么您可以插入,因为现在它在数据库中,您不能在同一个stream_id为8上执行另一次插入。这是我的jdbc代码

int stream_id= Integer.parseInt(requestData.get("stream_id"));
int my_id= Integer.parseInt(requestData.get("my_id"));
       String insertTableSQL = "INSERT INTO reputation"
        + "(stream_id,my_id) VALUES"
        + "(?,?)";

    dbConnection = DB.getConnection();
    preparedStatement = dbConnection.prepareStatement(insertTableSQL, Statement.RETURN_GENERATED_KEYS);

    preparedStatement.setInt(1, stream_id);
    preparedStatement.setInt(2, my_id);
    preparedStatement.executeUpdate();

只是为了澄清我只是想确保我在数据库中有唯一的对,如果我的my_id为5且stream_id为9那么我应该拒绝另一对5和9. int变量已经有了这些值我只是不知道如何检查数据库中是否有这些对;如果我没有继续插入,否则停止插入。

1 个答案:

答案 0 :(得分:1)

您应该在数据库中添加唯一键。如果你想在应用程序站点处理,也许你可以使用Hibernate或JPA或JDO。