Estou com um problema que quando peço para setar um valor resultante de um Result Set usando a propriedade set dos atributos, na classe onde eu atribuo os valores se eu pegar usando o get os valores estão lá, porém quando eu volto para o sessionBean de onde acionei o método, os valores já não estão mais lá, alguém ajuda por favor!
Este é o Bean
package com.example.utils;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import com.example.dao.ClienteDAO;
import com.example.dao.UsuarioDAO;
import com.sun.xml.internal.ws.developer.Stateful;
@Stateful
public class ClienteBean {
private int idCliente;
private String nome;
private String endereco;
private String fone;
private String bairro;
private String cidade;
private String email;
public int getIdCliente() {
return idCliente;
}
public void setIdCliente(int idCliente) {
this.idCliente = idCliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String cadastroCliente()
{
ClienteDAO clienteDAO = new ClienteDAO();
return clienteDAO.cadastroCliente(nome, endereco, fone, bairro, cidade, email);
}
public String alterarCliente()
{
ClienteDAO cliente = new ClienteDAO();
return cliente.alterarCliente(idCliente, nome, endereco, fone, bairro, cidade, email);
}
public String preparaAlteraCliente()
{
FacesContext fc = FacesContext.getCurrentInstance();
Map<String,String> params = fc.getExternalContext().getRequestParameterMap();
String id = params.get("idCliente");
ClienteDAO clienteDAO = new ClienteDAO();
clienteDAO.listarAlterar(Integer.parseInt(id));
System.out.println("ID: " + idCliente);
return "alteraCliente.jsp";
}
public String getExcluirCliente()
{
FacesContext fc = FacesContext.getCurrentInstance();
Map<String,String> params = fc.getExternalContext().getRequestParameterMap();
String id = params.get("idCliente");
ClienteDAO clienteDAO = new ClienteDAO();
return clienteDAO.excluirCliente(Integer.parseInt(id));
}
//======================================================//
public List<ClienteBean> getListar()
{
ClienteDAO clienteDAO = new ClienteDAO();
return clienteDAO.listar();
}
}
E essa é a camada de persistência com o banco. O problema é no método preparaAlteraCliente() e estou tendo o mesmo problema em uma outra classe, mas acredito ser o mesmo erro.
package com.example.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.example.utils.*;
public class ClienteDAO {
public String cadastroCliente(String nome, String endereco, String fone, String bairro, String cidade, String email)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Aula12ex1", "root", "root");
CallableStatement stm = conn.prepareCall("{call cadastraCliente(?,?,?,?,?,?)}");
stm.setString(1, nome);
stm.setString(2, endereco);
stm.setString(3, fone);
stm.setString(4, bairro);
stm.setString(5, cidade);
stm.setString(6, email);
stm.executeQuery();
return "sucesso";
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "erro";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "erro";
}
}
public String alterarCliente(int idCliente, String nome, String endereco, String fone, String bairro, String cidade, String email)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Aula12ex1", "root", "root");
CallableStatement stm = conn.prepareCall("{call alteraCliente(?,?,?,?,?,?,?)}");
stm.setString(1, nome);
stm.setString(2, endereco);
stm.setString(3, fone);
stm.setString(4, bairro);
stm.setString(5, cidade);
stm.setString(6, email);
stm.setInt(7, idCliente);
stm.executeQuery();
return "sucesso";
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "erro";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "erro";
}
}
public String excluirCliente(int idCliente)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Aula12ex1", "root", "root");
CallableStatement stm = conn.prepareCall("{call excluiCliente(?)}");
stm.setInt(1, idCliente);
stm.executeQuery();
return "sucesso";
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "erro";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "erro";
}
}
public List<ClienteBean> listar()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Aula12ex1", "root", "root");
CallableStatement stm = conn.prepareCall("{call consultaCliente(?)}");
stm.setString(1, "");
ResultSet rs = stm.executeQuery();
List<ClienteBean> listCliente = new ArrayList<ClienteBean>();
while(rs.next())
{
ClienteBean clienteBean = new ClienteBean();
clienteBean.setIdCliente(rs.getInt("idCliente"));
clienteBean.setNome(rs.getString("nomeCliente"));
clienteBean.setEndereco(rs.getString("endereco"));
clienteBean.setFone(rs.getString("fone"));
clienteBean.setBairro(rs.getString("bairro"));
clienteBean.setCidade(rs.getString("cidade"));
clienteBean.setEmail(rs.getString("email"));
listCliente.add(clienteBean);
}
for (@SuppressWarnings("rawtypes")
Iterator iterator = listCliente.iterator(); iterator.hasNext(); ) {
ClienteBean obj = (ClienteBean) iterator.next();
}
return listCliente;
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//return "erro";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//return "erro";
}
return null;
}
public String listarAlterar(int idCliente)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Aula12ex1", "root", "root");
CallableStatement stm = conn.prepareCall("{call consultaAlterarCliente(?)}");
stm.setInt(1, idCliente);
ResultSet rs = stm.executeQuery();
while(rs.next())
{
ClienteBean clienteBean = new ClienteBean();
clienteBean.setIdCliente(rs.getInt("idCliente"));
clienteBean.setNome(rs.getString("nomeCliente"));
clienteBean.setEndereco(rs.getString("endereco"));
clienteBean.setFone(rs.getString("fone"));
clienteBean.setBairro(rs.getString("bairro"));
clienteBean.setCidade(rs.getString("cidade"));
clienteBean.setEmail(rs.getString("email"));
}
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//return "erro";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//return "erro";
}
return null;
}
}