Class DtoReader<DTO>

java.lang.Object
systextil.intg.api.DtoReader<DTO>
Type Parameters:
DTO - o tipo de dados a exportar
All Implemented Interfaces:
Closeable, AutoCloseable

public abstract class DtoReader<DTO> extends Object implements Closeable
Leitor de DTOs a partir de consultas ao banco de dados pela chave primária.

Abre um PreparedStatement para leitura na tabela do ERP, de modo a poder executar várias consultas a ela pela chave primária.

Por isso, esses objetos devem ser fechados ao fim das operações com o método close(), ou usando "try-with-resources".

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Connection
     
    protected final PreparedStatement
    A consulta a um registro com os dados do ERP.
    protected final String
    O nome da tabela do ERP.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    DtoReader(Connection conn, String tabela, String sql)
    Instancia um leitor de DTOs.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Fecha o resultset de consulta dos registros de integração e o statement que foi aberto para consultar os registros do ERP.
    get(String id)
    Obtém um registro pela chave primária.
    protected abstract DtoMaker<DTO>
    Fornece para esta instância o DtoMaker que ela deve usar.
    protected abstract void
    Prepara o statement de consulta de um registro no ERP; para isso, informa o(s) parâmetro(s) da chave primária, com base no ID fornecido.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • conn

      protected final Connection conn
    • ps

      protected final PreparedStatement ps
      A consulta a um registro com os dados do ERP.
    • tabela

      protected final String tabela
      O nome da tabela do ERP.
  • Constructor Details

    • DtoReader

      protected DtoReader(Connection conn, String tabela, String sql) throws SQLException
      Instancia um leitor de DTOs.
      Parameters:
      conn - a conexão ao banco de dados
      tabela - o nome da tabela do ERP a integrar, em minúsculas
      sql - a consulta que traz um registro do ERP pela chave primária
      Throws:
      SQLException - se houver problema
  • Method Details

    • get

      public DTO get(String id) throws Exception
      Obtém um registro pela chave primária.
      Parameters:
      id - a chave primária codificada como String
      Returns:
      os dados do registro encontrado, ou nulo se não existir
      Throws:
      SQLException - se houver problema na consulta
      Exception - se houver outro tipo de problema
    • getMaker

      protected abstract DtoMaker<DTO> getMaker()
      Fornece para esta instância o DtoMaker que ela deve usar. É bom que retorne sempre a mesma instância.
      Returns:
      o conversor de registros em dados Java
    • prepareStatement

      protected abstract void prepareStatement(PreparedStatement ps, String id) throws SQLException
      Prepara o statement de consulta de um registro no ERP; para isso, informa o(s) parâmetro(s) da chave primária, com base no ID fornecido.

      Esse ID normalmente é interpretado para obter um ou mais campos que compõem a chave primária do registro no ERP.

      Parameters:
      ps - o statement que foi criado para consultar registros no ERP
      id - a identificação do registro do ERP na tabela de integração
      Throws:
      SQLException - se houver problema
    • close

      public void close()
      Fecha o resultset de consulta dos registros de integração e o statement que foi aberto para consultar os registros do ERP.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable