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