public int cadastrarLog(Log log) throws DataException { try { String sql = "INSERT INTO log (chaveUnica, tipoOperacao, classeObjeto, objeto, data, chaveUnicaObjeto) VALUES (?, ?, ?, ?, ?, ?)"; PreparedStatement ps = BDUtil.getConexao().prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos; oos = new ObjectOutputStream(bos); oos.writeObject(log.getObjeto()); oos.flush(); oos.close(); bos.close(); byte[] objeto = bos.toByteArray(); ps.setString(1, log.getChaveUnica()); ps.setInt(2, log.getTipoOperacao().ordinal()); ps.setString(3, log.getClasseObjeto()); ps.setObject(4, objeto); ps.setTimestamp(5, new Timestamp(log.getData().getTime())); if (log.getChaveUnicaObjeto() == null) { ps.setNull(6, java.sql.Types.VARCHAR); } else { ps.setString(6, log.getChaveUnicaObjeto()); } System.out.println(ps); if (ps.executeUpdate() > 0) { ResultSet rs = ps.getGeneratedKeys(); rs.next(); int codigo = rs.getInt("GENERATED_KEY"); log.setIdLog(codigo); rs.close(); } else { System.out.println("Erro ao executar a inserção"); } ps.close(); return log.getIdLog(); } catch (SQLException e) { e.printStackTrace(); throw new DataException(); } catch (IOException e) { e.printStackTrace(); } return 0; }