Ola, estou testando um codigo da minha apostila da EADCON sobre java, mysql e iReport, e quando eu compilo
esta aparecendo o seguinte erro:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.mysql.jdbc.ResultSetImpl
at appcadastro.AppCadastro.gerarReport(AppCadastro.java:137)
at appcadastro.AppCadastro.actionPerformed(AppCadastro.java:122)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
O que pode estar gerando esse erro?
VLW
Da uma fuçada nas linhas 137 e 122 da classe AppCadastro, provavelmente o erro esta por ali ou pode te levar o erro
W
wibson82
Ai, vou postar o codigo pra vcs poderem analisar melhor, lembrando que eu uso o netBeans 6.1, MySQL6 e o iReport, todos configurados e testados,
ja testei codigos usando apenas o MySQL apenas, e outros c o iReport, e funcionaram tranquilo, mas juntos n ta pegando.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageappcadastro;/** * * @author Wibson */importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;importjava.sql.*;importnet.sf.jasperreports.engine.*;importnet.sf.jasperreports.view.*;importcom.mysql.jdbc.Connection;importcom.mysql.jdbc.ResultSet;importcom.mysql.jdbc.Statement;importnet.sf.jasperreports.engine.export.JRPdfExporter;publicclassAppCadastroextendsFrameimplementsActionListener{TextFieldnome=newTextField(71);TextFielddescricao=newTextField(68);Buttonsalvar=newButton("Salvar");Buttonlimpar=newButton("Limpar");Buttonreport=newButton("Relatório");Buttonsair=newButton("Sair");Panelgeral;Cursoc=newCurso();Labelresult=newLabel();publicAppCadastro(){super("Aplicação de cadastro");setSize(800,285);setLocation(200,100);EvtJanelaevt=newEvtJanela();addWindowListener(evt);MenuBarbarraMenu=newMenuBar();MenumenuArquivo=newMenu("Arquivo");MenuItemitemCadastro=newMenuItem("Novo Curso");MenuItemitemSair=newMenuItem("Sair",newMenuShortcut(KeyEvent.VK_R));menuArquivo.add(itemCadastro);menuArquivo.add(itemSair);barraMenu.add(menuArquivo);setMenuBar(barraMenu);itemCadastro.addActionListener(this);itemSair.addActionListener(this);PanelpainelApp=newPanel();PanelpainelCadastro=newPanel();painelApp.setBackground(SystemColor.control);painelCadastro.setBackground(SystemColor.control);geral=newPanel();geral.add(painelApp,"J1");geral.add(painelCadastro,"J2");geral.setLayout(newCardLayout());add("Center",geral);painelCadastro.setLayout(newFlowLayout());painelCadastro.add(newLabel("Nome:"));painelCadastro.add(nome);painelCadastro.add(newLabel("Descrição:"));painelCadastro.add(descricao);String[]colunas={"NOME","DESCRIÇÃO"};Object[][]conteudo={{"",""}};JTabletabela=newJTable(conteudo,colunas);tabela.setPreferredScrollableViewportSize(newDimension(560,120));painelCadastro.add(newJScrollPane(tabela));PanelpainelButton=newPanel();painelButton.add(salvar);painelButton.add(limpar);painelButton.add(report);painelButton.add(sair);painelButton.add(result);painelCadastro.add("South",painelButton);salvar.addActionListener(this);limpar.addActionListener(this);report.addActionListener(this);sair.addActionListener(this);}publicstaticvoidmain(String[]args){AppCadastroexec=newAppCadastro();exec.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getSource()instanceofMenuItem){MenuItemitem=(MenuItem)e.getSource();if(item.getLabel().equals("Sair")){System.exit(0);}if(item.getLabel().equals("Novo Curso")){CardLayoutpilha=(CardLayout)geral.getLayout();pilha.next(geral);}}if(e.getSource()==salvar){c.setNome(nome.getText());c.setDescricao(descricao.getText());incluir();limpar();}if(e.getSource()==limpar){limpar();}if(e.getSource()==report){gerarReport();}if(e.getSource()==sair){System.exit(0);}}publicvoidgerarReport(){try{Connectioncon=connection();Statementstm=(Statement)con.createStatement();Stringquery="Select * from Curso";ResultSetrs=(ResultSet)stm.executeQuery(query);JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);JRExporterjrpdf=newJRPdfExporter();JasperPrintprint;OutputStreamfos=null;print=JasperFillManager.fillReport("iReport.jasper",null,jrRS);fos=newFileOutputStream("iReport.pdf");jrpdf.setParameter(JRExporterParameter.OUTPUT_STREAM,fos);jrpdf.setParameter(JRExporterParameter.JASPER_PRINT,print);jrpdf.exportReport();fos.close();JasperViewer.viewReport(print);}catch(IOExceptione){e.printStackTrace();}catch(JRExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}}publicvoidincluir(){try{Statementstatement=(Statement)connection().createStatement();Stringsql="Insert into Curso VALUES ("+c.getNome()+", "+c.getDescricao()+")";statement.executeUpdate(sql);result.setText("CURSO INSERIDO COM SUCESSO!");}catch(SQLExceptione){e.printStackTrace();result.setText("OCORRERAM ERROS NA INSERÇÃO!");}}publicvoidconsultar(){ResultSetresultadoBanco=null;Stringconsulta="Select * from Curso";try{PreparedStatementcomandoBanco=connection().prepareStatement(consulta);resultadoBanco=(ResultSet)comandoBanco.executeQuery();connection().close();}catch(ExceptionErro){result.setText("OCORRERAM ERROS NA CONSULTA!");}}publicvoidlimpar(){nome.setText("");descricao.setText("");}publicConnectionconnection(){Connectionconnection=null;try{Class.forName("com.mysql.jdbc.Driver").newInstance();}catch(InstantiationExceptione){e.printStackTrace();}catch(IllegalAccessExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}try{connection=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/root?"+"user=root&password=mysteri0");}catch(SQLExceptione){e.printStackTrace();}returnconnection;}}classEvtJanelaextendsWindowAdapter{publicvoidwindowClosing(WindowEvente){System.exit(0);}}classCurso{Integerid=newInteger(0);Stringnome=newString();Stringdescricao=newString();publicStringgetDescricao(){returndescricao;}publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}
U
uchoaaa
Bom, vc não deve instanciar classes específicas do teu Driver JDBC. E sim usar as Interfaces ofertadas pelo pacote java.sql.
Lembre-se que a idéia é justamente não prender tua aplicação a nenhum Banco de Dados específicos.