Re:problemas com select [RESOLVIDO]

Olá

To tendo problemas em o java ver o select que to fazendo. Já testei ele direto no BD e funciona e no java retorna como null. Desconfio que seja as “” pós clausula where que no java ele não esteja reconhecendo como aspas do SQL e sim como aspas da string.

Segue o código no SQL e depois no java.

SQL

SELECT SUBSTRING(DATA,4), SUM(saldo) FROM tb_fluxocaixa WHERE SUBSTRING(DATA,4) =  '02/2010'

JAVA

ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) ="+"02/2010").list();

Se for isso como que posso solucionar o problema?

Boa tarde.

Perceba que para o sql reconhecer o 02/2010 como string, ele deve estar entre as aspas simples ’ '. No caso o seu JAVA ficaria quase igual ao que postaste.

ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) ="+"'02/2010'").list();  

Espero ter ajudado.

Opa!

Testei e não funcionou. A mensagem que dá é java.lang.nullpointexception Eu quero que a data, no caso 02/2010 faça parte do código SQL como acontece em uma pesquisa no próprio banco.

Se é null pointer é outra coisa, posta o código e a stacktrace.

O codigo ta nada otimizado, mas ta quebrando o meu galho. To pesquisando pelo mes de fevereiro que é o que tem valores no banco.

Acho que o retorno nulo seja mesmo por não consegiur fazer a pesquisa de forma correta porque se eu tento direto no BD o mesmo código sem as ‘’ ou “” ele me retorna uma pesquisa com os campos em branco, já eu colocando as “” ou ‘’ ele me retorna o valor desejado.

[code]public Double listarDadosCaixa(String mes){
try{

	if (mes.equals("Janeiro")){
		ArrayList sql = (ArrayList) session.createSQLQuery("SELECT SUBSTRING(DATA,4), SUM(saldo) FROM tb_fluxocaixa WHERE SUBSTRING(DATA,4) =" + "'01/2010'").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Fevereiro")){
		
		ArrayList sql = (ArrayList) session.createSQLQuery("select SUM(saldo) FROM tb_fluxocaixa where substring(data,4) = '" + "'02/2010'").list();        
		Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Março")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) ="+ "03/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Abril")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) =" + "04/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Maio")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) =" +"5/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Junho")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) =" +"06/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Julho")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) =" +"07/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Agosto")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) ="+ "08/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Setembro")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) ="+ "09/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Outubro")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) =" +"10/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Novembro")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) =" +"11/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	if (mes.equals("Dezembro")){
		ArrayList sql = (ArrayList) session.createSQLQuery("select substring(data,4), SUM(saldo) FROM tb_fluxocaixa where substring(data,4) = "+"12/2010").list();        
	   Double[] trans = new Double[5];  
  	    trans[1] =   (Double) ((ArrayList) sql).get(1);    
	    Double novoValor = trans[1];
	    return novoValor;	
	}
	
	return 1.0 ;
}catch(Exception e){
	e.printStackTrace();
	return 2.0;
}

}
[/code]

printStackTrace

java.lang.NullPointerException at br.com.graziela.delegate.CadastroDelegate.listarDadosCaixa(CadastroDelegate.java:400) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421) at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183) at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503) at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884) at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121) at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158) at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44) at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67) at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146) at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278) at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)

Pronto, faltava eu iniciar a conexao com o banco e por isso dava esse problema.

Valeu a todos.