Bom Dia.
Bem…minha sugestão é que você use o VO (Value Object) para popular os dados
e o DAO para manipular as operações com o BD.
No VO vc só ira dar os gets e sets das variaveis.
e no DAO vc recupera os valores.
Fiz um exemplozinho de Teste para vc de um DAO.
Dê uma olhada e Boa Sorte.
package vpda.ejb.cadastro;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import vpda.ejb.util.DefaultDao;
import vpda.lib.TesteVo;
import vpda.lib.DaoException;
import vpda.util.Constants;
import vpda.util.FormatToolKit;
/**
* @author Renan Espíndola de Oliveira
* @Version 1.0
*/
public class TesteDao extends DefaultDao{
/**
* Retorna informações de Teste.
* @param codigo
* @return vo
* @throws DaoException se ocorrer algum erro no acesso ao banco de dados.
*/
public TesteVo recuperarTeste(String codigo) throws DaoException {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
TesteVo vo = null;
StringBuffer sql = new StringBuffer();
sql.append( " SELECT CCAMPA as codigo, " );
sql.append( " ICAMPA as nome, " );
sql.append( " RCAMPA as descricao, " );
sql.append( " DINIC as dataInicio, " );
sql.append( " DFNAL as dataTermino, " );
sql.append( " NPRIOR as tipoPrioridade, " );
sql.append( " CCANAL as codigoCanal, " );
sql.append( " CPRODT as codigoProduto, " );
sql.append( " CMODLD as codigoModalidade, " );
sql.append( " RPRODT as descricaoProduto, " );
sql.append( " RMODLD as descricaoModalidade, " );
sql.append( " EURL as URL, " );
sql.append( " CSTTUS as status, ");
sql.append( " RAG_PARTC as agenciasParticipantes, ");
sql.append( " CTPO_USUAR as tipoUsuario, " );
sql.append( " CTPO_CLI_CAMPA as tipoCliente " );
sql.append( " FROM CAMPA as Teste " );
sql.append( " WHERE CCAMPA = ? " );
try {
conn = getConnection();
stmt = conn.prepareStatement( sql.toString() );
stmt.setString(1, codigo);
rs = stmt.executeQuery();
if (rs.next()){
vo = new TesteVo();
vo.setCodigo(rs.getString("codigo"));
vo.setNome(rs.getString("nome"));
vo.setDescricao(rs.getString("descricao"));
vo.setDataInicio(rs.getDate("dataInicio"));
vo.setDataTermino(rs.getDate("dataTermino"));
vo.setTipoPrioridade(rs.getInt("tipoPrioridade"));
vo.setCodigoCanal(rs.getString("codigoCanal"));
vo.setCodigoProduto(rs.getString("codigoProduto"));
vo.setCodigoModalidade(rs.getString("codigoModalidade"));
vo.setDescricaoProduto(rs.getString("descricaoProduto"));
vo.setDescricaoModalidade(rs.getString("descricaoModalidade"));
vo.setURL(rs.getString("URL"));
vo.setStatus(rs.getString("status"));
vo.setTipoUsuario(rs.getString("tipoUsuario"));
vo.setTipoCliente(rs.getString("tipoCliente"));
}
}catch ( SQLException e ) {
throw new DaoException( e.getMessage() );
}finally {
try { if(null != rs) rs.close(); } catch ( Exception e ) {}
try { if(null != stmt) stmt.close(); } catch ( Exception e ) {}
try { if(null != conn) conn.close(); } catch ( Exception e ) {}
}
return vo;
}
private Long getLong(ResultSet rs){
Long retorno = new Long(null);
return retorno;
}
public int atualizarTeste(TesteVo vo) throws DaoException {
int retorno = 0;
//if (vo.getTipoAcao().equals(Constants.ACAO_INCLUIR)){
//retorno = inserirTeste(vo);
//} else if (vo.getTipoAcao().equals(Constants.ACAO_ATUALIZAR)){
retorno = alterarTeste(vo);
//}
return retorno;
}
/**
* Atualizar Informações da Teste.
* @param vo
* @return int
* @throws DaoException se ocorrer algum erro no acesso ao banco de dados.
*/
public int alterarTeste(TesteVo vo) throws DaoException {
int rowsUpdated = 0;
Connection conn = null;
PreparedStatement stmt = null;
StringBuffer sql = new StringBuffer();
sql.append( "UPDATE CAMPA SET " );
sql.append( " ICAMPA= ?, " );
sql.append( " RCAMPA= ?, " );
sql.append( " DINIC=?, " );
sql.append( " DFNAL=?, " );
sql.append( " NPRIOR=?, " );
sql.append( " CCANAL=?, " );
sql.append( " CPRODT=?, " );
sql.append( " CMODLD=?, " );
sql.append( " RPRODT=?, " );
sql.append( " RMODLD=?, " );
sql.append( " EURL=?, " );
sql.append( " CSTTUS=?," );
sql.append( " RAG_PARTC=?, " );
sql.append( " CTPO_USUAR=?, " );
sql.append( " CTPO_CLI_CAMPA=? " );
sql.append( "WHERE CCAMPA=? " );
try {
conn = getConnection();
String teste = sql.toString();
stmt = conn.prepareStatement( sql.toString());
stmt.setString(1, vo.getNome());
stmt.setString(2, vo.getDescricao());
stmt.setString(3, FormatToolKit.dateToStr(vo.getDataInicio(),"yyyy-mm-dd"));
stmt.setString(4, FormatToolKit.dateToStr(vo.getDataTermino(),"yyyy-mm-dd"));
stmt.setInt(5, vo.getTipoPrioridade());
stmt.setString(6, vo.getCodigoCanal());
stmt.setString(7, vo.getCodigoProduto());
stmt.setString(8, vo.getCodigoModalidade());
stmt.setString(9, vo.getDescricaoProduto());
stmt.setString(10, vo.getDescricaoModalidade());
stmt.setString(11, vo.getURL());
stmt.setString(12, vo.getStatus());
stmt.setString(13, vo.getAgenciasParticipantes());
stmt.setString(14, vo.getTipoUsuario());
stmt.setString(15, vo.getTipoCliente());
stmt.setString(16, vo.getCodigo());
stmt.executeUpdate();
}catch (Exception e){
throw new DaoException(e.getMessage());
}finally{
try { if(null != stmt) stmt.close(); } catch ( Exception e ) {}
try { if(null != conn) conn.close(); } catch ( Exception e ) {}
}
// Retorna o número de linhas atualizadas.
return rowsUpdated;
}
/**
* Inserir informações de Teste.
* @param vo
* @throws DaoException se ocorrer algum erro no acesso ao banco de dados.
*/
public int inserirTeste(TesteVo vo) throws DaoException {
int rowsUpdated = 0;
Connection conn = null;
PreparedStatement stmt = null;
StringBuffer sql = new StringBuffer();
sql.append( "INSERT INTO CAMPA ( " );
sql.append( " CCAMPA, " );
sql.append( " ICAMPA, " );
sql.append( " RCAMPA, " );
sql.append( " DINIC, " );
sql.append( " DFNAL, " );
sql.append( " NPRIOR, " );
sql.append( " CCANAL, " );
sql.append( " CPRODT, " );
sql.append( " RPRODT, " );
sql.append( " CMODLD, " );
sql.append( " RMODLD, " );
sql.append( " EURL, " );
sql.append( " CSTTUS, " );
sql.append( " RAG_PARTC, " );
sql.append( " CTPO_USUAR, " );
sql.append( " CTPO_CLI_CAMPA ) " );
sql.append( " VALUES (?, ?, ?, ?, ?, ?, ? ,? ,? ,? ,? ,? ,?, ?, ?, ?)");
try {
conn = getConnection();
stmt = conn.prepareStatement( sql.toString());
stmt.setString(1, vo.getCodigo());
stmt.setString(2, vo.getNome());
stmt.setString(3, vo.getDescricao());
stmt.setString(4, FormatToolKit.dateToStr(vo.getDataInicio(),"dd/MM/yyyy"));
stmt.setString(5, FormatToolKit.dateToStr(vo.getDataTermino(),"dd/MM/yyyy"));
stmt.setInt(6, vo.getTipoPrioridade());
stmt.setString(7, vo.getCodigoCanal());
stmt.setString(8, vo.getCodigoProduto());
stmt.setString(9, vo.getDescricaoProduto());
stmt.setString(10, vo.getCodigoModalidade());
stmt.setString(11, vo.getDescricaoModalidade());
stmt.setString(12, vo.getURL());
stmt.setString(13, vo.getStatus());
stmt.setString(14, vo.getAgenciasParticipantes());
stmt.setString(15, vo.getTipoUsuario());
stmt.setString(16, vo.getTipoCliente());
stmt.executeUpdate();
}catch (SQLException e){
e.printStackTrace();
throw new DaoException(e.getMessage());
}finally{
try { if(null != stmt) stmt.close(); } catch ( Exception e ) {}
try { if(null != conn) conn.close(); } catch ( Exception e ) {}
}
// Retorna o número de linhas inseridas.
return rowsUpdated;
}
}
Qualquer dúvida é só gritar!!!
