java - java中值重复时清理对象

标签 java mysql exception duplicates

我正在向我的数据库添加数据,但我意识到了这一点;每次我尝试添加重复行时,我都会从控制台收到此消息:

e = >(com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException) com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '13-2-1' for key 'idx_post_user'

问题是该对象仍然具有 html 表单中的值,因此当我尝试将该对象与 null 进行比较以选择我要采取的方式(发送到 a 或 b 屏幕)时,该对象仍然参数在内存中重复。

我的问题是:在异常发生后如何清理代码中的对象以使用 if 条件?

public boolean addElement(Object objetoInsert) {
    ContactPost objContactPost = (ContactPost) objetoInsert;
    try {
        Connection con = Conexion.getConexion();
        String query = "insert into snp_contactpost values 
(?,?,?,?,?,?,?,?)";
        PreparedStatement ps = con.prepareStatement(query);
        ps.setInt(1, ultimoID());
        ps.setInt(2, objContactPost.getPost_id());
        ps.setInt(3, objContactPost.getContactPost_isDone());
        ps.setString(4, objContactPost.getContactPost_token());
        ps.setInt(5, objContactPost.getUser_id_seller());
        ps.setInt(6, objContactPost.getUser_id_buyer());
        ps.setInt(7, objContactPost.getContactPost_isEmailSended());
        ps.setString(8, objContactPost.getContactPost_date());
        try {
            return ps.executeUpdate() == 1;
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return false;
        }

    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
    return false;
}

最佳答案

在嵌套尝试之前尝试使用 con.close(); 关闭连接。

关于java - java中值重复时清理对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55574476/

相关文章:

php - SQLSTATE[42000] : Syntax error or access violation: 1064 PDO

c++ - 覆盖 C 代码以抛出 C++ 异常?

java - 手动编译而不是使用 netbeans 时 Java 中奇怪的文本格式

java - 如何从另一个项目调用@ControllerAdvice

java - 更新 Java 中的现有变量

mysql - 了解 SQL 中的笛卡尔积

Java 后缀运算符优先级

mysql - 检索满足一个条件但不满足另一个条件的记录

java - 在 Java 中将字符串解析为日历?

c++ - XP 上的 Win32 调用抛出的异常