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