[RESOLVIDO]Como Realiza uma pesquisa em java

20 respostas
T

Bom dia pessoal estou com uma duvida, eu criei um aplicativo e nesse aplicativo eu realizo uma pesquisa pelo nome do cliente, porém eu só consigo realizar pesquisa pelo nome eu queria realiza
pesquisa pelo nome e pelo código do cliente porém eu não estou conseguindo fazer isso.

segue a baixo o código da pesquisa pelo nome.

try
{

con_cliente.resultset.first();
 String igual = "n";
 int tamanho_pesquisa = tf_pesquisar.getText().length();
  while(igual == "n")
         {
               String pesquisado = con_cliente.resultset.getString("nome").substring(0,(tamanho_pesquisa));

                 if(pesquisado.equals(tf_pesquisar.getText()))
                     {

                        igual = "s";
                      }
                     else {
                                con_cliente.resultset.next();
                       }
}

tf_id.setText(con_cliente.resultset.getString(id));

mostrar_dados();
}

catch(Exception erro)

{

JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação, erro = "+erro);

}

20 Respostas

josiloch

Olá, já pensou em usar um LIKE no banco?

Rodrigo_Sasaki

Oi, Thiago.

Bem vindo ao GUJ :slight_smile:

Só uma dica, antes de postar, leia o nosso How To. Tem uma série de regras e dicas que são importantes para quem quer abrir tópicos e participar do fórum.

W

Boa tarde pessoal, estou passando pelo mesmo problema.

Estou realizando uma consulta com like, mas diz com o que metodo não existe, sendo que no xhtml a chamada do metodo a descrição está identica.
aguardo uma ajuda, sou iniciando em java, peguei este exemplo em um forum anterior.
obrigado.
dao

public List<Cliente> buscar(String nome){
		manager.getTransaction().begin();
		Query query = manager.createNativeQuery("select * from cliente " +  
	            "where upper(nome) like upper(:nome)", Cliente.class);
		
		query.setParameter("nome", "%" + nome + "%");
		List<Cliente> clits = query.getResultList();		
		return clits;
	}

been

public List<Cliente> listarClientes(Object nome){
		return clienteDao.buscar(nome.toString());
	}

xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<title>Insert title here</title>
</h:head>
<h:body>
	<f:view>
		<h:form>

			<center>
				<rich:panel style="width:500px;">
					<f:facet name="header">
						<center>
							<h:outputText value="Cadastro de cliente" />
						</center>
					</f:facet>
					<h:panelGrid columns="2">
						
						<h:outputText value="Cliente" />
						<h:inputText value="#{clienteControl.cliente.nome}" id="clieid" />
						<h:outputText value="CPF" />
						<h:inputText value="#{clienteControl.cliente.cpf}" />
						<h:outputText value="Logradouro" />
						<h:inputText value="#{clienteControl.cliente.logradouro}" />
						<h:outputText value="Cidade" />
						<h:inputText value="#{clienteControl.cliente.cidade}" />
						
						<h:commandButton action="#{clienteControl.inserir}" value="Inserir" />	

                                               <!-- o metodo está aqui--> 					
						<h:commandButton value="Buscar" action="#{clienteControl.listarClientes}" for="clieid" />
						
					</h:panelGrid>
				</rich:panel>
			</center>
			<center>

				<rich:dataTable value="#{clienteControl.clientes}" var="cliente"
					style="width:505px;">
					<f:facet name="header">
						<h:outputText value="Clientes" />
					</f:facet>
					<rich:column>
						<f:facet name="header">
							<h:outputText value="Cliente" />
						</f:facet>
						<h:outputText value="#{cliente.nome}" />
					</rich:column>
					<rich:column>
						<f:facet name="header">
							<h:outputText value="CPF" />
						</f:facet>
						<h:outputText value="#{cliente.cpf}" />
					</rich:column>
					<rich:column>
						<f:facet name="header">
							<h:outputText value="Logradouro" />
						</f:facet>
						<h:outputText value="#{cliente.logradouro}" />
					</rich:column>
					<rich:column>
						<f:facet name="header">
							<h:outputText value="Cidade" />
						</f:facet>
						<h:outputText value="#{cliente.cidade}" />
					</rich:column>
				</rich:dataTable>
			</center>
		</h:form>
	</f:view>
</h:body>
</html>

abaixo o erro voltado.

WARNING: #{clienteControl.listarClientes}: javax.el.MethodNotFoundException: /cliente.xhtml @37,96 action="#{clienteControl.listarClientes}": Method not found: [email removido]()
javax.faces.FacesException: #{clienteControl.listarClientes}: javax.el.MethodNotFoundException: /cliente.xhtml @37,96 action="#{clienteControl.listarClientes}": Method not found: [email removido]()
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:110)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException: /cliente.xhtml @37,96 action="#{clienteControl.listarClientes}": Method not found: [email removido]()
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:92)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 23 more
Caused by: javax.el.MethodNotFoundException: /cliente.xhtml @37,96 action="#{clienteControl.listarClientes}": Method not found: [email removido]()
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 24 more

Dez 18, 2012 2:08:00 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/projeto] threw exception [javax.el.MethodNotFoundException: /cliente.xhtml @37,96 action="#{clienteControl.listarClientes}": Method not found: [email removido]()] with root cause
javax.el.MethodNotFoundException: /cliente.xhtml @37,96 action="#{clienteControl.listarClientes}": Method not found: [email removido]()
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
W

Alguém?!?
Estou precisando de ajuda, estou montando um projeto para apresentar um trabalho envolvendo jpa, sem jpa consigo trazer a consulta, mas com o jpa estou garrado.
Preciso da ajuda de vocês.
obrigado.

W

alguém?

E

Cara,

teu erro tah aqui…

Method not found: [email removido]()

Vc naum tem esse método no teu bean.
Dá uma olhada melhor aih…

W

erick.yuji:
Cara,

teu erro tah aqui…

Method not found: [email removido]()

Vc naum tem esse método no teu bean.
Dá uma olhada melhor aih…

Boa tarde Yuji, tenho sim.
Como postado no código acima, existe o metodo listarClientes no been.
Cheguei até criar um outro método que lista geral e listou, somente esse metodo que deve não ter encontrado alguma coisa.

been

public List<Cliente> listarClientes(Object nome){
		return clienteDao.buscar(nome.toString());
	}
E

Fala aew cara,

Intao, isso

listarClientes()

é diferente disso

listarClientes(Object nome).

Isso se chama sobrecarga de métodos, vc pode ter o mesmo nome de método, mesmo retorno, e alternar teus parâmetros.
Tire o parâmetro e veja pelo debug ou rode a sua aplicação e veja se funciona.

felipef

Da uma lida nesse post

http://www.guj.com.br/java/92859-como-executar-metodo-pelo-clique-do-commandbutton-jsf

Agora se quiser algo beeemm legal

Aplicação Web Completa JSF EJB JPA JAAS

W

erick.yuji:
Fala aew cara,

Intao, isso

listarClientes()

é diferente disso

listarClientes(Object nome).

Isso se chama sobrecarga de métodos, vc pode ter o mesmo nome de método, mesmo retorno, e alternar teus parâmetros.
Tire o parâmetro e veja pelo debug ou rode a sua aplicação e veja se funciona.

Sim…mas os dois metodos: no Dao quanto no Been tem parâmetros.

dao

public List<Cliente> buscar(String nome){
		manager.getTransaction().begin();
		Query query = manager.createNativeQuery("select * from cliente " +  
	            "where upper(nome) like upper(:nome)", Cliente.class);
		
		query.setParameter("nome", "%" + nome + "%");
		List<Cliente> clits = query.getResultList();		
		return clits;
	}

been

public List<Cliente> listarClientes(Object nome){
		return clienteDao.buscar(nome.toString());
	}
felipef

Leu os posts que passei?

W

felipef:
Leu os posts que passei?
Boa tarde Felipe, vou ver aqui.

Vou verificar o projeto completo que vc me enviou e ver se consigo tirar algum exemplo dele p\ executar em cima do meu.
Obrigado

W

Alguém?

Rodrigo_Sasaki

Alguém o que? No seu último post você não deixou uma dúvida, simplesmente afirmou que ia olhar o projeto.

Evite “upar” tópicos, se ninguém te responder, tente fornecer mais informações, senão é capaz que algum moderador venha e tranque o tópico porque você não seguiu as regras do fórum.

W

Bom dia Rodrigo, minha dúvida foi postada.
Não estou querendo que este tópico fique em evidência, mas sim que alguém possa visualizar e me ajudar neste caso.
Desculpe se fiz interpretar mal.
Mas soube que este forúm o pessoal aqui é unido e ajuda muito.

Ainda tenho dúvida, pode me ajudar neste caso?

Rodrigo_Sasaki

wmmartins:
Bom dia Rodrigo, minha dúvida foi postada.
Não estou querendo que este tópico fique em evidência, mas sim que alguém possa visualizar e me ajudar neste caso.
Desculpe se fiz interpretar mal.
Mas soube que este forúm o pessoal aqui é unido e ajuda muito.

Ainda tenho dúvida, pode me ajudar neste caso?


Sim, eu entendo seu ponto, mas infelizmente regras são regras :slight_smile: Não é questão de interpretação.

Agora quanto à sua dúvida ela já foi respondida, você tem um método com 1 argumento, mas está chamando um método sem nenhum argumento (que não existe). Você tem que enviar o argumento que ele pede.

W

Rodrigo, obrigado pela dica, agora apareceu está msg, poderia me ajudar?

Dez 19, 2012 8:39:49 AM com.sun.faces.lifecycle.InvokeApplicationPhase execute
WARNING: #{clienteControl.listarClientes(nome.toString())}: java.lang.NullPointerException
javax.faces.FacesException: #{clienteControl.buscar(nome.toString())}: java.lang.NullPointerException
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:110)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.MethodNotFoundException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:104)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 23 more
Caused by: java.lang.NullPointerException
	at java.lang.Class.isAssignableFrom(Native Method)
	at org.apache.el.util.ReflectionUtil.isAssignableFrom(ReflectionUtil.java:299)
	at org.apache.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:172)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:251)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 24 more

Dez 19, 2012 8:39:49 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/projeto] threw exception [java.lang.NullPointerException] with root cause
java.lang.NullPointerException
	at java.lang.Class.isAssignableFrom(Native Method)
	at org.apache.el.util.ReflectionUtil.isAssignableFrom(ReflectionUtil.java:299)
	at org.apache.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:172)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:251)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
E

Cara,

No seu stack trace tah a resposta.

javax.faces.FacesException: #{clienteControl.buscar(nome.toString())}: java.lang.NullPointerException

Alguma coisa nessa linha tah vindo nulo.

Falows

W

Obrigado pessoal, consegui resolver, estava passando um parametro no xhtml onde não precisa.

o Código ficou assim:
been

public String buscar() {
		clientes = clienteDao.buscar(cliente.getNome());
		clienteDao.atualizar();
		return null;
	}

xhtml

<h:commandButton value="Buscar" action="#{clienteControl.buscar}"   >
T

Bom dia pessoal, obrigado pela ajuda eu consegui resolver o meu problema de busca pelo código e pelo nome do cliente .

Criado 18 de dezembro de 2012
Ultima resposta 20 de dez. de 2012
Respostas 20
Participantes 6