Minha classe DAO não esta sendo percorrida por completo

7 respostas
J

Estou atribuindo as funções a uma Tela de Lançar Honorario.
Ja fiz a servlet se comunicar com a classe de negocio, porem a classe de negocio não esta percorrendo completamente a minha classe DAO.
O programa apenas executa o comando select no banco, mas não percorre a função if else dentro do try.
Alguém poderia me dar uma ajuda? :?:

CLASSE DAO:
public class OracleAdvogadoHonorarioDAO implements AdvogadoHonorarioDAO {

public String verificaProcesso(String numero_processo) throws SQLException {
	
	Connection conn = null; // conexao com SGBD
	System.out.println("Conexao aberta!");
	
	try {

		//Obtem a conexao com o SGBDR
		conn = ConnectionManager.getInstance().getConnection();
		LancarHonorarioServlet1 lancarHonorarioServlet1 = new LancarHonorarioServlet1();
		
		//Cria o PreparedStatement para selecionar o campo numero do processo			
		PreparedStatement HonorarioSelect = conn.prepareStatement("select * from AM_Advogado_Honorario where nr_processo = ?");
		//Atribui ao codigo sql o que foi digitado pelo usuario
		HonorarioSelect.setString(1, numero_processo);
		
		//executa a SQL
		ResultSet rs = HonorarioSelect.executeQuery();
		System.out.println("Executou comando select");

		if(rs == null){
			return "Numero do processo não encontrado ou inexistente!";
		}else{
			return "sucesso";
		}
		
	} catch (Exception e) {
		e.printStackTrace();
		throw new SQLException("Erro ao conectar ou manipular o banco de dados!", e);			
	}finally {

		if (conn != null) {//se ha uma conexao, fecha ela
			try {
				
				
				//Fecha a conexao com o SGBDR
				conn.close();
									
			} catch (SQLException e) {
				
				e.printStackTrace();
				throw new SQLException("Erro ao fechar a conexao com o banco de dados!", e);
			}
		}
		
	}
	
}
SERVLET:

public class LancarHonorarioServlet1 extends HttpServlet{

private static final long serialVersionUID = 1L;
public LancarHonorarioServlet1(){
	super();
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	this.doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	
	String btnVerificaProcesso = req.getParameter("verifica_processo");
	String btnLancarHonorario = req.getParameter("lancar_honorario");
	String btnIncluirHonorario = req.getParameter("incluir_honorario");
	String lblNumeroProcesso = req.getParameter("numero_processo");
	String lblCnpj = req.getParameter("cnpj");
	
	
	System.out.println("B1 " + btnVerificaProcesso);
	System.out.println("B2 " + btnLancarHonorario);
	
	AdvogadoHonorarioBO advogadoHonorarioBO = new AdvogadoHonorarioBO();
	
	if (btnVerificaProcesso != null) {
		//System.out.println("O numero do processo deve ser verificado! Clique em Verificar Processo");
		try {
			String nr_processo = advogadoHonorarioBO.verificaProcesso(lblNumeroProcesso);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	/*}else {
		if ("Verificação".equals(btnVerificaProcesso)) {
			try {
				String nr_processo = advogadoHonorarioBO.verificaProcesso(lblNumeroProcesso);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}			
		}*/		
	}


7 Respostas

Phelps

Tenta substituir:

if(rs == null){ 
return "Numero do processo não encontrado ou inexistente!"; 
}else{ 
return "sucesso"; 
}

por

if(rs.next()){ return "sucesso"; }else{ return "Numero do processo não encontrado ou inexistente!"; }

Tava tendo o mesmo problema hoje de manhã…

J

Muito obrigado. Me ajudou muito.
Mas abusando um pouco da boa vontade… Sabe como faço para pegar um dado de um campo do banco e mostrar em uma label na tela Web?
Não tenho a menor ideia de por onde começar.

Grato

Hebert_Coelho

JacksonHx1:
Muito obrigado. Me ajudou muito.
Mas abusando um pouco da boa vontade… Sabe como faço para pegar um dado de um campo do banco e mostrar em uma label na tela Web?
Não tenho a menor ideia de por onde começar.

Grato

Primeiro, aprenda como jogar valores em páginas web sem precisar de banco de dados. Depois, adicione o DB.

Aqui tem um exemplo simples: Criando um WebServer.

J

Phelps a sua dica havia dado certo, porem quando fechei o eclipse e abri novamente o projeto voltou a não percorrer o if else.
OBS: Verifiquei todo o código e esta td certo, ou seja, da mesma forma que estava quando fechei o eclipse, porém voltou a não percorrer o if else mesmo com rs.next().

:?: :?: :?: :?: :?: :?:

Phelps

O mesmo erro?
Me diz uma coisa, esse AdvogadoHonorarioBO faz o que? Não era pra ser AdvogadoHonorarioDAO?
Dê mais informações ai e desculpe por demorar na resposta!

J

Então, consegui resolver o problema, não descobri o que estava de errado, mas agora o if else esta sendo percorrido novamente.
A minha duvida agora é como fazer uma lista usando os dados do Banco de dados.

Phelps

No método verificaProcesso do DAO você tem que retornar uma lista, dai tem que fazer algo do tipo public List verificaProcesso(), o qual será criado uma lista do que quer imprimir( não sei se é bem um objeto do tipo ). Enfim a classe que chamar esse método irá imprimir a lista com um for each.

Criado 12 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 7
Participantes 3