Olá pessoal sou novo aqui no forum, e novo nesse mundo Java…
Estou com um problema no desenvolvimento de um portal (trabalho da faculdade). Enfim…
Esse é o erro que me gera…
org.apache.jasper.JasperException: java.lang.ClassCastException: beans_dao.Produtos cannot be cast to beans_dao.Clientes
tenho dois formularios, ao executar o projeto consigo acessar um formulario e quando acesso o outro me gera esse erro, se eu fechar e reconstruir consigo acessar o outro formulario porem não consigo acessar mais o que tinha acessado.
Segue o código DAO do Produtos:
package beans_dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class ProdutosDAO {
private String url;
private Statement cmd;
private Connection cnn; // Atributo de conexao:
private PreparedStatement ps = null; // Objeto para SQL Preparado:
public ProdutosDAO() throws SQLException, ClassNotFoundException {
url = "jdbc:derby://localhost:1527/dbFarmaLight;create=true";
checarTabela();
}
private String getConexao() {
return this.url;
}
// Este método recebe o objeto preenchido pelo JavaBeans, via parametro:
public boolean atualizar(Produtos it) throws Exception {
try {
cnn = abrir();
if (it.getAcao().equals("Incluir")) {
ps = cnn.prepareStatement(
"insert into PRODUTOS (descricao, unidade, saldo, valorUnitario, obs) Values(?,?,?,?,?)");
} else {
ps = cnn.prepareStatement(
"update PRODUTOS set descricao=?, unidade=?, saldo=?, valorUnitario=?, obs=? where codigo=?");
ps.setInt(6, it.getCodigo());
}
ps.setString(1, it.getDescricao());
ps.setString(2, it.getUnidade());
ps.setFloat(3, it.getSaldo());
ps.setFloat(4, it.getValorUnitario());
ps.setString(5, it.getObs());
ps.executeUpdate();
ps.close();
return true;
} catch (Exception e) {
System.out.println(e.toString());
return false;
}
}
// Este método recebe o ID para exclusão:
public boolean excluir(int item) throws SQLException, ClassNotFoundException {
cnn = abrir();
try {
ps = cnn.prepareStatement("delete from PRODUTOS where codigo=?");
ps.setString(1, Integer.toString(item));
ps.executeUpdate();
ps.close();
return true;
} catch (Exception e) {
System.out.println(e.toString());
return false;
}
}
// Este método, instancia o JavaBeans para auxiliar a montar a lista:
public List<Produtos> getLista() throws SQLException, ClassNotFoundException {
cnn = abrir();
ps = cnn.prepareStatement("select * from PRODUTOS");
ResultSet rs = ps.executeQuery();
List<Produtos> Prods = new ArrayList<Produtos>();
while (rs.next()) {
// Criando o objeto e setando valores:
Produtos it = new Produtos();
it.setCodigo(rs.getInt("codigo"));
it.setDescricao(rs.getString("descricao"));
it.setUnidade(rs.getString("unidade"));
it.setSaldo(rs.getFloat("saldo"));
it.setValorUnitario(rs.getFloat("valorUnitario"));
it.setObs(rs.getString("obs"));
// Adicionando o objeto à lista:
Prods.add(it);
}
rs.close();
ps.close();
return Prods;
}
// Este método, instancia o JavaBeans para consulta de um registro:
public Produtos getItem(int cod) throws SQLException, ClassNotFoundException {
cnn = abrir();
ps = cnn.prepareStatement("select * from PRODUTOS where codigo=?");
ps.setInt(1, cod);
ResultSet rs = ps.executeQuery();
Produtos it = new Produtos();
if (rs.next()) {
// Criando o objeto e setando valores:
it.setCodigo(rs.getInt("codigo"));
it.setDescricao(rs.getString("descricao"));
it.setUnidade(rs.getString("unidade"));
it.setSaldo(rs.getFloat("saldo"));
it.setValorUnitario(rs.getFloat("valorUnitario"));
it.setObs(rs.getString("obs"));
}
rs.close();
ps.close();
return it;
}
private Connection abrir() throws ClassNotFoundException, SQLException {
Connection oCon;
Class.forName("org.apache.derby.jdbc.ClientDriver");
oCon = DriverManager.getConnection(getConexao(), "farma", "farma");
return oCon;
}
private void fechar() throws SQLException {
cmd.close();
cnn.close();
}
private ResultSet executarSQL(String strSQL) throws ClassNotFoundException, SQLException {
cnn = abrir();
cmd = cnn.createStatement();
ResultSet objRS = cmd.executeQuery(strSQL);
return objRS;
}
private void checarTabela() throws SQLException, ClassNotFoundException {
String sql = "SELECT count(*) as qtReg FROM sys.systables "
+ " WHERE tablename='PRODUTOS' AND tabletype='T'";
ResultSet rs = executarSQL(sql);
if (rs.next()) {
if (rs.getInt("qtReg") == 0) {
sql = "create table PRODUTOS ("
+ " codigo bigint NOT NULL"
+ " PRIMARY KEY"
+ " GENERATED ALWAYS AS IDENTITY"
+ " (START WITH 1, INCREMENT BY 1),"
+ " descricao varchar(50),"
+ " unidade varchar(2),"
+ " saldo decimal(10,2),"
+ " valorUnitario decimal(10,2),"
+ " obs varchar(50)"
+ ")";
cnn.createStatement().execute(sql);
cnn.commit();
}
}
rs.close();
fechar();
}
}
Código do DAO do Clientes:
/*
- Clientes DAO
*/
package beans_dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
/**
*
-
@author Leandro
*/
public class ClientesDAO {private String banco; //Caminho banco
private Statement cmd;
private Connection cnn; // Atributo de conexao:
private PreparedStatement ps = null; // Objeto para SQL Preparado:public ClientesDAO() throws SQLException, ClassNotFoundException { banco = “jdbc:derby://localhost:1527/dbFarmaLight;create=true”; checarTabela();
}
private String getConexao() { return this.banco; }
// Este método recebe o objeto preenchido pelo JavaBeans, via parametro: public boolean atualizar(Clientes ict) throws Exception { try { cnn = abrir(); if (ict.getAcao().equals(“Incluir”)) { ps = cnn.prepareStatement( “insert into CLIENTES (nome, cpf, telefone, email, cidade) Values(?,?,?,?,?)”); } else { ps = cnn.prepareStatement( “update CLIENTES set nome=?, cpf=?, telefone=?, email=?, cidade=? where codigo=?”); ps.setInt(6, ict.getCodigo()); } ps.setString(1, ict.getNome()); ps.setString(2, ict.getCpf()); ps.setString(3, ict.getTelefone()); ps.setString(4, ict.getEmail()); ps.setString(5, ict.getCidade()); ps.executeUpdate(); ps.close(); return true; } catch (Exception e) { System.out.println(e.toString()); return false; } }
// Este método recebe o ID para exclusão: public boolean excluir(int item) throws SQLException, ClassNotFoundException { cnn = abrir(); try { ps = cnn.prepareStatement(“delete from CLIENTES where codigo=?”); ps.setString(1, Integer.toString(item)); ps.executeUpdate(); ps.close(); return true; } catch (Exception e) { System.out.println(e.toString()); return false; } }
// Este método, instancia o JavaBeans para auxiliar a montar a lista: public List getLista() throws SQLException, ClassNotFoundException { cnn = abrir(); ps = cnn.prepareStatement(“select * from CLIENTES”); ResultSet rs = ps.executeQuery(); List Clie = new ArrayList(); while (rs.next()) { // Criando o objeto e setando valores: Clientes it = new Clientes(); it.setCodigo(rs.getInt(“codigo”)); it.setNome(rs.getString(“nome”)); it.setCpf(rs.getString(“cpf”)); it.setTelefone(rs.getString(“telefone”)); it.setEmail(rs.getString(“email”)); it.setCidade(rs.getString(“cidade”));
// Adicionando o objeto à lista: Clie.add(it); } rs.close(); ps.close(); return Clie;
}
// Este método, instancia o JavaBeans para consulta de um registro: public Clientes getItem(int cod) throws SQLException, ClassNotFoundException { cnn = abrir(); ps = cnn.prepareStatement(“select * from CLIENTES where codigo=?”); ps.setInt(1, cod); ResultSet rs = ps.executeQuery();
Clientes it = new Clientes(); if (rs.next()) { // Criando o objeto e setando valores: it.setCodigo(rs.getInt("codigo")); it.setNome(rs.getString("nome")); it.setCpf(rs.getString("cpf")); it.setTelefone(rs.getString("telefone")); it.setEmail(rs.getString("email")); it.setCidade(rs.getString("cidade")); } rs.close(); ps.close(); return it;
}
private Connection abrir() throws ClassNotFoundException, SQLException { Connection oCon; Class.forName(“org.apache.derby.jdbc.ClientDriver”); oCon = DriverManager.getConnection(getConexao(), “farma”, “farma”); return oCon; }
private void fechar() throws SQLException { cmd.close(); cnn.close(); }
//EXECUTA INSTRUÇÃO SQL private ResultSet executarSQL(String strSQL) throws ClassNotFoundException, SQLException { cnn = abrir(); cmd = cnn.createStatement(); ResultSet objRS = cmd.executeQuery(strSQL); return objRS; }
//VERIFICA SE A TABELA CLIENTES EXISTE private void checarTabela() throws SQLException, ClassNotFoundException { String sql = “SELECT count(*) as qtReg FROM sys.systables " + " WHERE tablename=‘CLIENTES’ AND tabletype=‘T’”; ResultSet rs = executarSQL(sql); if (rs.next()) {
//SE A TABELA NÃO EXISTIR/ AINDA NÃO FOI CRIADA //CRIA TABELA CLIENTES if (rs.getInt("qtReg") == 0) { sql = "create table CLIENTES (" + " codigo bigint NOT NULL" + " PRIMARY KEY" + " GENERATED ALWAYS AS IDENTITY" + " (START WITH 1, INCREMENT BY 1)," + " nome varchar(50)," + " cpf varchar(15)," + " telefone varchar(15)," + " email varchar(50)," + " cidade varchar(20)" + ")"; cnn.createStatement().execute(sql); cnn.commit(); } } rs.close(); fechar();
}
}
Tenho certeza que foi um erro bobo o meu, espero que alguem possa me ajudar muito obrigado…