| package br.com.vivo.torpedeiro.pull.impl; |
| |
| import br.com.vivo.torpedeiro.pull.MensagemPull; |
| import br.com.vivo.torpedeiro.pull.PullDAO; |
| import org.springframework.jdbc.core.JdbcTemplate; |
| |
| import javax.sql.DataSource; |
| |
| /** |
| * Implementa? padr?de {@link PullDAO} que realiza todas as opera?s utilizando SQL atrav?de um {@link |
| * JdbcTemplate} do Spring Framework. |
| * |
| * @author Marcus Brito |
| */ |
| public class PullDAOJdbcTemplate implements PullDAO |
| { |
| private static final int STATUS_INICIAL = -7; |
| |
| private JdbcTemplate template; |
| |
| public String buscarURLProvedor(String provedor) |
| { |
| String sql = "SELECT url FROM pull_url WHERE provedor = ?"; |
| return (String) template.queryForObject(sql, new Object[]{provedor}, String.class); |
| } |
| |
| public Long inserirMensagemHistorico(MensagemPull mensagem) |
| { |
| String sql = "" + |
| "INSERT INTO pull_historico (\n" + |
| " id_log,\n" + |
| " provedor,\n" + |
| " origem,\n" + |
| " destino,\n" + |
| " msg_originada,\n" + |
| " cod_erro,\n" + |
| " dt_recepcao\n" + |
| ") VALUES (?, ?, ?, ?, ?, ?, sysdate)"; |
| |
| Long id = buscarProximoID(); |
| |
| template.update(sql, new Object[]{id, mensagem.getCodigoProvedor(), |
| mensagem.getMensagemOriginal().getOrigem(), mensagem.getMensagemOriginal().getDestino(), |
| mensagem.getMensagemOriginal().getMensagem(), STATUS_INICIAL}); |
| |
| return id; |
| } |
| |
| public void atualizarMensagemHistorico(Long id, int status, String mensagem) |
| { |
| String sql = "" + |
| "UPDATE pull_historico\n" + |
| " SET cod_erro = ?,\n" + |
| " msg_recebida = ?,\n" + |
| " dt_resposta = SYSDATE\n" + |
| " WHERE id_log = ?"; |
| |
| template.update(sql, new Object[]{status, mensagem, id}); |
| } |
| |
| private long buscarProximoID() |
| { |
| return template.queryForLong("SELECT seq_id_log.nextval FROM dual"); |
| } |
| |
| /** |
| * @param ds O DataSource utilizado para acesso ao banco de dados. |
| */ |
| public void setDataSource(DataSource ds) |
| { |
| this.template = new JdbcTemplate(ds); |
| } |
| } |