Dúvida urgente!

Boa tarde a todos,

Vamos lá, estou com o seguinte problema, estou usando Struts com MVC e estou tendo um problema na minha classe DAO.
Essa minha classe tenho um método q é uma lista, e nele passo como parâmetros um tipo String e 2 tipos int.
Na minha jsp tenho 2 campos, um é codInicial e o outro codFinal. Esses 2 caras são passados como parâmetros no método como int.
Qd digito uma informação nesses dois campos e mando pesquisar, ele tinha q trazer a determinada faixa que foi digitada, ex: de 1 a 10, caso tenha digitado esses 2 valores, ao clicar em pesquisar tem q trazer a faixa compreendida entre esses valores, ex: {1,2,3,4,5,6,7,8,9,10}.
Mas só q não esta acontecendo isso, ele esta trazendo todos os códigos.

Segue abaixo o código do meu DAO.

[code]
public List listarPDV(String livre, int codPDVIni, int codPDVFim){

	List listaPDV = new ArrayList();
	
	try{
		
		System.out.println("Entrou CadPDVFaixaDAO");
		Connection con = getConnection();
		
		System.out.println("Antes da Query ");
		String sql= "SELECT sidagentevenda,nStatus FROM tbldealer_faixas WHERE 1=1 ";
				
		if (livre.equals("S")){
			sql = sql + " and nstatus = 0";
		}
		if(codPDVIni > 0){
			sql = sql + " and sidagentevenda >= " + codPDVIni;
		}
		if(codPDVFim > 0){
			sql = sql + " and sidagentevenda <= " + codPDVFim; 
		}
		sql = sql + " order by sidagentevenda";
		
		pstm = con.prepareStatement(sql);	   
	
	    rs = pstm.executeQuery(sql);
	      
	    System.out.println("antes do while");
	    
	    while (rs.next()){
	    	
	    	CadPDVFaixaVO pdvFaixaVO = new CadPDVFaixaVO();		      	
	      		
	      	pdvFaixaVO.setCodPDV(rs.getInt("sidagentevenda"));
	      	pdvFaixaVO.setStatus(rs.getString("nStatus"));
	      	System.out.println("Status: " + rs.getInt("sidagentevenda"));		      	
	
	        listaPDV.add(pdvFaixaVO);
	      
	    };
	    
	    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;
}

Segue também a minha Action:

public ActionForward executaPesquisa( ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {		
			
			System.out.println("CadPDVFaixasAction.entrou");
			
			CadPDVFaixaVO pdvFaixaVO = new CadPDVFaixaVO();
			CadPDVFaixaDAO pdvFaixaDAO = new CadPDVFaixaDAO();			
			CadPDVFaixaForm pdvFaixaForm = (CadPDVFaixaForm) form;
			
			List listaPDV = pdvFaixaDAO.listarPDV(pdvFaixaForm.getLivre(), Integer.parseInt(pdvFaixaForm.getCodPDVIni()), Integer.parseInt(pdvFaixaForm.getCodPDVFim()));
			
			HttpSession session = request.getSession();
			
			if (listaPDV.isEmpty()){ 
				session.removeAttribute("lstPDVFaixa");				
			}
			else{
				session.setAttribute("lstPDVFaixa", listaPDV);				
			}
		return mapping.findForward("success");		
	}

Espero que alguém possa me ajudar.

Muito obrigado,
Vitor

São dois campos JSP

São um 1 String
e dois 2 int

vc determinou uma faixa 1 a 10 ou entre 1 a 10 ?
ai ele traz tudo de uma vez só …

tanto int como a cadeia de string ?

 if(codPDVIni &gt; 0){  
                 sql = sql + &quot; and sidagentevenda &gt;= &quot; + codPDVIni;  
             }  
             if(codPDVFim &gt; 0){  
                 sql = sql + &quot; and sidagentevenda &lt;= &quot; + codPDVFim;   
             }  

Isso, são dois campos jsp chamados: codInicial e codFinal.
Essa faixa foi só um exemplo poderia ter sido de 8000 a 8010 por exemplo, qd for exibir tem q mostrar os números entre essa faixa determinada.
Mas só q mesmo vc determinando uma faixa ele traz todos os codigos q estão no BD.

na tabela o campo é codigo, mas nesse caso quero pegar o codInicial e codFinal.

Desde já agradeço,
Vitor

Tenta eliminar o
String livre , só para ver se ele não traz na tabela do DB as cadeias nao desejada ou melhor fazer ele funcionar quando vc testar só o parametro de int.

E Veja o que acontece… acho que o erro esta na passagem de parametros.