コード例 #1
0
  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;
  }