Olá pessoal estou com um erro ao tentar chamar relatório com Ireport
já procurei em outros tópicos e não me ajudou, continua dando o mesmo erro
segue: Classe que chama o relatório
public class rel_clientes{
CriaConexao con = new CriaConexao(); //está é a minha conexão com o banco de dados MySQL
protected String getReportFullPath() {
return "relatorio/rel_clientes.jasper";
}
public rel_clientes() throws JRException{
try
{
HashMap parametros = new HashMap();// crio os parametros
CriaConexao.getConexao();
con.executeSQL("SELECT * from cliente;");
InputStream in = ClassLoader.getSystemClassLoader().getClass().getResourceAsStream(getReportFullPath());
JasperViewer jrv = new JasperViewer(in,false);// Crio o JasperViewer que recebe como parametro o JasperPrint
jrv.setVisible(true);// Mando exibir o relatório
}catch(SQLException erro){
JOptionPane.showMessageDialog(null, "Erro!" +erro);
erro.printStackTrace(System.err);
}
}
}
Classe que conecta com o banco de dados
public class CriaConexao {
private static Connection conexao;
public static Statement statement = null;
public static ResultSet resultset = null;
public static Connection getConexao() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Conectando ao Banco!");
return DriverManager.getConnection("jdbc:mysql://localhost/salao", "root", "admin");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
public void executeSQL(String sql) {
try {
if (conexao == null) {
this.getConexao();
}
java.sql.PreparedStatement ps = conexao.prepareStatement(sql);
resultset = ps.executeQuery();
} catch(SQLException sqlex) {
JOptionPane.showMessageDialog(null,"Não foi possível executar o comando sql, " + sqlex + ", o sql passado foi " + sql);
}
}
}
O erro que da é este
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at salao.bancodados.CriaConexao.executeSQL(CriaConexao.java:41)
at salao.relatorio.rel_clientes.<init>(rel_clientes.java:28)
at salao.forms.JFTelaPrincipal.jMRelatorioClientesActionPerformed(JFTelaPrincipal.java:189)
at salao.forms.JFTelaPrincipal.access$600(JFTelaPrincipal.java:23)
at salao.forms.JFTelaPrincipal$7.actionPerformed(JFTelaPrincipal.java:143)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 5 segundos)
Agradeço antecipadamente aos que puderem dar uma força
Que sejam iluminados pela Luz que veio ao mundo para nos salvar, Jesus
