Problemas com query (Struts)

2 respostas
V

Boa tarde a todos,

Estou precisando da ajuda dos senhores(as) para solução de um problema.
Estou fazendo uma migração de sistema de dot.net para java, aqui uso o modelo MVC com Struts.

No meu DAO estou com um problema q não sei dizer se é na minha query ou no próprio método, a query esta vindo vazia e não descubro o pq de jeito nenhum.

No meu DAO passo como parâmetro o Bean e populo esse bean e pego essa lista de Bean na minha Action.
Mas o grande problema é q a query esta vindo fazia. Na query tem uma pegunta em que o código tem q ser maior que zero (0).
Mas mesmo assim não teve jeito.

Agradeço desde já a ajuda dos senhores(as).

Vou postar aqui pros senhores(as) o código do meu DAO e da minha Action.

Código DAO:

package raa.ebt.dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import raa.ebt.form.CadPDVFusaoForm;
import raa.ebt.vo.CadPDVFusaoVO;


public class CadPDVFusaoDAO extends ConnectionDAO{
	
	String sql = "";
	
	public List listarPDV(CadPDVFusaoVO pdvFusaoVO){		
			
		List listaPDV = new ArrayList();
		
		try{
			
			System.out.println("Entrou CadPDVFusaoDAO");
			Connection con = getConnection();
			
			System.out.println("Antes da Query");
						
			String sql = " SELECT f.sidagentevenda, " +
						 " f.pdv_filho, " +
						 " NVL(VP.snomeagentevenda, '') nome_pai, " +
						 " NVL(vf.snomeagentevenda,'') nome_filho " +
						 " FROM tbldealer_fusao f, " +
						 " 		TBLAGENTECANALVENDA VP, " +
						 "		TBLAGENTECANALVENDA VF " +
						 " WHERE F.nidregiao = ? " +
						 " AND F.sidagentevenda = VP.SIDAGENTEVENDA" +
						 " AND F.pdv_FILHO = VF.SIDAGENTEVENDA";
						 			
			
			if(pdvFusaoVO.getCodPDVPai() > 0){				
				sql = sql + " AND F.sidagentevenda >= ? ";
			}
			if(pdvFusaoVO.getCodPDVFilho() > 0){
				sql = sql + " AND F.pdv_filho >= ? ";
			}			
			sql = sql + " ORDER BY F.sidagentevenda";
						
			pstm = con.prepareStatement(sql);
			
			pstm.setString(1,Integer.toString(pdvFusaoVO.getRegiao()));
			pstm.setString(2,Integer.toString(pdvFusaoVO.getCodPDVPai()));
			pstm.setString(3,Integer.toString(pdvFusaoVO.getCodPDVFilho()));
												
			System.out.println("Depois da query");			
			System.out.println("SQL: " + sql);
			System.out.println("getRegiao: " + pdvFusaoVO.getRegiao());
			System.out.println("getCodPDVPai: " + pdvFusaoVO.getCodPDVPai());
			System.out.println("getCodPDVFilho: " + pdvFusaoVO.getCodPDVFilho());
			
		    rs = pstm.executeQuery();
		      
		    System.out.println("Antes do while");
		    
		    while (rs.next()){

		    	System.out.println("Entrou no while");
		    	pdvFusaoVO.setRegiao(rs.getInt("nidregiao"));
		    	pdvFusaoVO.setDescPDVPai(rs.getString("sidagentevenda") + "(" + rs.getString("snomeagentevenda")+")" + "<--" + (rs.getString("pdv_filho") + "(" + rs.getString("snomeagentevenda")+")"));		      	 	
		    	
		    	System.out.println("Resultado: " + (rs.getString("sidagentevenda") + "(" + rs.getString("snomeagentevenda")+")" + "<--" + (rs.getString("pdv_filho") + "(" + rs.getString("snomeagentevenda")+")")));
		    	
		    			      	
		      	listaPDV.add(pdvFusaoVO);
		      
		    };
		    
		    System.out.println("Depois do while");  
			
			}catch(java.sql.SQLException sqlException){
				System.out.println("sqlException: "+ sqlException);
			}catch(Exception e){
			  	System.out.println("Exception: "+ e);
			}finally{
			  	try{
			  		System.out.println("Antes de fechar conexao.");
			  		con.close();
			  		System.out.println("Depois de fechar conexao.");
			  	}catch(SQLException sqlException){
			  		System.out.println("sqlException: "+ sqlException);
			  	}
			}
			  
		return listaPDV;
	}
}

Action:

[code]
public class CadPDVFusaoAction extends DispatchAction {

public ActionForward carrega( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

UtilitarioDAO utilitariodao = new UtilitarioDAO();
HttpSession session = request.getSession();
//Carrega regiao
List lista = utilitariodao.getListaRegiao();
if(lista.isEmpty())
session.removeAttribute("lstRegiao");
else
session.setAttribute("lstRegiao", lista);

return mapping.findForward("success");
}


public ActionForward executaPesquisa( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

System.out.println("CadPDVFusaoAction.entrou");

CadPDVFusaoVO pdvFusaoVO = new CadPDVFusaoVO();
CadPDVFusaoDAO pdvFusaoDAO = new CadPDVFusaoDAO();
//CadPDVFusaoForm pdvFusaoForm = (CadPDVFusaoForm) form;

List listaPDV = pdvFusaoDAO.listarPDV(pdvFusaoVO);

HttpSession session = request.getSession();

if (listaPDV.isEmpty()){
session.removeAttribute("lstPDVFusao");
}
else{
session.setAttribute("lstPDVFusao", listaPDV);
}
return mapping.findForward("success");
}
}
[code]

2 Respostas

articof

Você não conhece o Hibernate?? use-o e esqueça dos famosos - String sql = " SELECT from … etc… " , vai demora um pouquinho para ler a documentação, mais vai ter uma produtividade muito maior. Recomendo ! boa sorte.

V

Cara,

Até queria trabalhar com Hibernate, mas infelizmente aqui não tem como usar agora.
Mas vc teria como me ajudar nesse problema?

Agradeço desde já,

Vitor

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