Duvidas para utilizar o método "main"

5 respostas
arthurgon

Criei uma classe DAO onde tenho um método "SELECT". Criei o banco...está tudo correto.
Porém não consigo criar uma classe teste pra consultar a tabela.
Não pode ser consulta de Lista. Alguem poderia me ajudar?
A classe com o método ficou assim:

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import vo.MensagemVO;

public class MensagemDAO extends DAOBase {

	
	private static String SELECT = null;

	public MensagemDAO() {
		this(null);
	}

	public MensagemDAO(Connection connection) {
		super(connection);

	StringBuffer stringBuffer = new StringBuffer();

	if (SELECT == null) {
			stringBuffer.delete(0, stringBuffer.length());
			stringBuffer.append("select * from MSG_RPT ");
			stringBuffer.append("where CD_EMPGCB = ? AND ");
			stringBuffer.append(" CD_FIL = ? AND ");
			stringBuffer.append(" CD_MSGRPT = ? ");
			SELECT = stringBuffer.toString();
		}
	}
	
	//////MÉTODO UTILIZADO PARA SELECIONAR DADOS NA TABELA ///////
	public MensagemVO selecionar(MensagemVO mensagemVO) throws SQLException{
		PreparedStatement preparedStatement = null;
		Connection conn = null;
		ResultSet rs = null;
		
		try{
			conn = getConnection();
			
			preparedStatement = conn.prepareStatement(SELECT);
			
			int index = 1;
			preparedStatement.setInt(index++, mensagemVO.getEmpresa());
			preparedStatement.setInt(index++, mensagemVO.getFilial());
			preparedStatement.setInt(index++, mensagemVO.getCodigoMensagem());
			
			rs = preparedStatement.executeQuery();
			
			if(rs.next()){
				mensagemVO = new MensagemVO();
				
				mensagemVO.setEmpresa(rs.getInt("CD_EMPGCB"));
				mensagemVO.setFilial(rs.getInt("CD_EMPGCB"));
				mensagemVO.setCodigoMensagem(rs.getInt("CD_MSGRPT"));
				mensagemVO.setMensagem(rs.getString("DS_MSGRPT"));
				
				return mensagemVO;
			}else{
				return null;
			}
		} finally {
			close(null, preparedStatement, conn);
		}
	
	    }

	}

5 Respostas

fiaux

Você quer testar essa classe? Ou faz na mão, dentro dessa classe, criando o método main. Ou usa teste unitário.

arthurgon

De qualquer forma…não sei como testar.
Não to conseguindo formar um corpo de código pra teste…ou dentro ou fora da classe. Essa é minha dúvida.
Criar o método main pra ela.

Mas valeu pela resposta.

fiaux

Não entendi.
Acho que seria algo assim:

public static void main( String[] args ) { MensagemDAO dao = new MensagemDAO(/* passa a conneciton */ new Connection()); MensagemVO mensagem = new MensagemVO(); //preenche atributos de mensagem MensagemVO retorno = dao.selecionar(mensagem); //testa ou exibe retorno }
Mas seria melhor com teste unitario.

arthurgon

Ainda não deu certo.
Ele exibe os valores todos em “0” “null”;
Mas os campos estão preenchidos.

fiaux

E o banco, como está? Tem dados?

Criado 29 de maio de 2008
Ultima resposta 29 de mai. de 2008
Respostas 5
Participantes 2