Re:problemas com select [RESOLVIDO]

5 respostas
ari_cesar

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?

5 Respostas

E

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.

ari_cesar

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.

Marky.Vasconcelos

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

ari_cesar

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.

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;
	}
	
}

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)
ari_cesar

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

Valeu a todos.

Criado 1 de setembro de 2010
Ultima resposta 1 de set. de 2010
Respostas 5
Participantes 3