JSF - Recuperar valores do Banco

Boa tarde, Pessoal !!

Eu estou tentando aprender JSF, eu estava seguindo um tutorial, porém ele apenas ensinou a inserir os valores
na tabela, e então estou tentando recupera os valores da Mesma…

Porém estou tendo um problema com os Metodo responsavel por recuperar o valor…

estou utilizando interface, pelo oque li para que fica mais claro e mais facil dar manutenção no código…

[i]
Estou com problema neste metodo [b]public String procurarcliente() throws Exception;[b] , eu não sei como faço a assinatura dela…

Tipo eu preciso de uma uma String que vai fazer parte da minha query para recuperar o valor, mas como eu passo esta String para o metodo
que faz a consulta, tentei de várias formas se alguem poder me ajudar…

[/i]

Interface DAO

package br.com.dao;

import br.com.cliente.Cliente;

public interface DAO {
	
	void salvar(Cliente cliente) throws Exception;
	
	[b]public String procurarcliente() throws Exception;[/b]
	
}

Classe que implenta a interface DAO

package br.com.implementa.dao;

import br.com.cliente.Cliente;
import br.com.dao.DAO;
import br.com.integrator.util.ConnectionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;



public class ClienteDAOImp implements DAO{
	
	private Connection conn;
	private ResultSet rs = null;
	public static final String result = "success";
	

	
	
	
	public ClienteDAOImp() throws Exception{
		try{
			this.conn = ConnectionFactory.getConnection();
		}
		catch (Exception e) {
			// TODO: handle exception
			throw new Exception("Erro : "+ "\n" + e.getMessage());
		}
	}
	
	//Metodo que insere os dados na Tabela
	
	public void salvar(Cliente cliente) throws Exception{
		PreparedStatement ps = null;
		Connection conn = null;
		if(cliente == null) throw new Exception("O Valor passado não pode ser nulo !!");
		try{
		String SQL = "insert into cliente(nome,email)"+"values (?,?)";
		conn = this.conn;
		ps = conn.prepareStatement(SQL);
		ps.setString(1,cliente.getNome());
		ps.setString(2,cliente.getEmail());
		ps.executeUpdate();
		}
		catch (SQLException sqle){
			throw new 
				Exception("Errp ao inserir dados "+ sqle);
		}
		finally{
			ConnectionFactory.closeConnection(conn,ps);
		}
	}
	
	 [b]public String procurarcliente() throws Exception{[/b]
		
		PreparedStatement ps = null;
		Connection conn = null;
		 try {
		
			 String SQL = "select * from cliente where cliente = '"+  + "'";
			 conn = this.conn;
			 ps = conn.prepareStatement(SQL);
			 rs = ps.executeQuery(SQL);
			 if(rs.next()){
				 Integer id = 0;
				 String nome = null;
				 String email = null;
				 id = rs.getInt(id);
				 nome = rs.getString(nome);
				 email = rs.getString(email);
				 return result;	 

         	 }
		     
				
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		 return result;
	 }

		
		
	


}

Classe que manipula todos os retornos…

package br.com.controller;

import br.com.cliente.Cliente;
import br.com.dao.DAO;
import br.com.implementa.dao.ClienteDAOImp;

public class CliController {
	
	private Cliente cliente;
	
	public Cliente getCliente(){
		return cliente;
	}
	
	public void setCliente(Cliente cliente){
		this.cliente = cliente;
	}
	
	public String novo(){
		this.cliente = new Cliente();
		return "novo";
	}
	
	[b]public String consulta(){[/b]
		this.cliente = new Cliente();
		return "consulta";
	}
	
	//Não sei como chamar isto aqui - O problema está na hora que chamo o metodo procurar cliente
	[b]public String consultacliente(){[/b]
		DAO dao = new ClienteDAOImp();
		dao.procurarcliente();
		return "success";
	}
		
	public String salvar() throws Exception{
		DAO dao = new ClienteDAOImp();
		dao.salvar(cliente);
		return "salvar";
	}
	
	

}

Pagina JSP com Formulário de Consulta

</head>
<body>
<f:view>
<h:form>
<h:panelGrid>
	<f:facet name="header">
	<h:outputText value=".:Consultar Clientes:. "/>
	</f:facet>
	<h:outputText value="nome"/>
	<h:inputText id="nome" value="#{cliC.cliente.nome}"/>
</h:panelGrid>
<h:commandButton value="Consultar" action="#{cliC.consultacliente}"/>
<h:commandButton value="Limpar" type="reset"/>


</h:form>

</f:view>
</body>
</html>

JSP - que deve recupear o valor

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<f:view>

<h:outputText value="#{cliC.cliente.nome }"/>

</f:view>
</body>
</html>

Obrigado

Pelo que li,

o seu método procurarcliente() ele tem que ser do tipo cliente e não do tipo String.
Agora se retornar mais de 1 cliente,
O ideal seria você armazena-lo em uma lista.

Eu tenho um livro chamado Programação Java para WEB, ele é excelente inclusive utiliza Hibernate.
JSF2.0

Caso tenha interesse
www.javaparaweb.com.br

Flww!

Cara, esse método deverá RETORNAR um Objeto, e não uma String

public String procurarcliente() throws Exception;
public Cliente procurarcliente(String nome) throws Exception;

O parametro vai depender de como vc quer efetuar a busca, ID, Nome … blabalba

As interfaces necessitam de todas as informações para que um método possa ser criado pela classe concreta que a implementará.
Isso significa que, tanto o tipo de retorno, quanto os parâmetros devem ser setados nela.
Se o método irá retornar uma lista com os clientes, a partir de um nome:

public interface IFace(){
 public List<Cliente> findValues(String param);
}

Perceba que eu identifiquei o tipo de retorno (List) e o parâmetro (String param)
Se for apenas um:

public interface IFace(){
 public Cliente findCliente(String param);
}

E pronto

Galera, desiti !

tentar recuperar com String, como objeto…

Vou tentar fazer um projeto completo e pegar um livro…

Abs

Obrigado