Conexao conn = new Conexao();
Connection con= (Connection) conn.conn;
try {
PreparedStatement consulta = (PreparedStatement) con.prepareStatement
(
"SELECT"+
"sessao.`idSessao` AS sessao_idSessao,"+
"pedido.`numNota` AS pedido_numNota,"+
"pedido.`qnt` AS pedido_qnt,"+
"cardapio.`nome` AS cardapio_nome,"+
"cardapio.`valor` AS cardapio_valor,"+
"sessao.`idMesa` AS sessao_idMesa,"+
"sessao.`abertura` AS sessao_abertura,"+
"sessao.`fechamento` AS sessao_fechamento,"+
"sessao.`permanencia` AS sessao_permanencia,"+
"sessao.`idCliente` AS sessao_idCliente,"+
"clientes.`CPF` AS clientes_CPF,"+
"sessao.`totalConta` AS sessao_totalConta,"+
"mensagemempresa.`mensagem` AS mensagemempresa_mensagem"+
"FROM"+
"`conta` conta INNER JOIN `sessao` sessao ON conta.`numConta` = sessao.`numNota`"+
"AND conta.`idSessao` = sessao.`idSessao`"+
"INNER JOIN `pedido` pedido ON conta.`numConta` = pedido.`numNota`"+
"INNER JOIN `clientes` clientes ON conta.`idCliente` = clientes.`idCliente`"+
"INNER JOIN `mensagemempresa` mensagemempresa ON conta.`idMensagem` = mensagemempresa.`idMensagem`"+
"AND clientes.`idCliente` = sessao.`idCliente`"+
"INNER JOIN `cardapio` cardapio ON pedido.`codigo` = cardapio.`codigo`"+
"WHERE"+
"sessao.idSessao = ?"+
"AND mensagemEmpresa.idMensagem = ?"
);
consulta.setInt(1, idSessao); //PEGA O PARAMETRO DA SUA APLICAÇÃO
consulta.setInt(2, idMensagem);
ResultSet rs = consulta.executeQuery();
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
HashMap parameters = new HashMap();
// HashMap<String, Integer> map = new HashMap<String, Integer>();
String arquivoJasper = "C://MonteCook//dist//lib//CupomFiscal.jasper";
// map.put("idSessao", idSessao);
// String a = String.valueOf(cbIdMensagem.getSelectedItem());
// System.out.println(a);
// System.out.println(idSessao);
// map.put("idMensagem", Integer.valueOf(a));
// JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, map, conn.conn);
JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, parameters, jrRS);
//Vizualiza
JasperViewer.viewReport(jasperPrint,false);
PreparedStatement
Bom dia irmãos do GUJ
estou iniciando a empreitada com JasperReports e iReport, e na minha aventura vi um negócio legal também que são as consultas onde criamos parâmetros.
Acontece que dá erro na linha onde instancio o PreparedStatement, creio que seja o cast que fiz, mas não tenho certeza pois é a primeira vez que mexo com isso.
Se alguém tiver alguma sugestão ou dica, pra resolver este NullPointerException.
2 Respostas
M
O cast não é necessário. Certifique-se que importou a classe PreparedStatement do pacote certo.
Fiz os devidos imports, mas me apresenta este erro:
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
conn.conectar();
Connection con= (Connection) conn.conn;
try {
PreparedStatement consulta = con.prepareStatement
(
"SELECT sessao.`idSessao` AS sessao_idSessao, pedido.`numNota` AS pedido_numNota, pedido.`qnt` AS pedido_qnt, cardapio.`nome` AS cardapio_nome, cardapio.`valor` AS cardapio_valor, sessao.`idMesa` AS sessao_idMesa, sessao.`abertura` AS sessao_abertura, sessao.`fechamento` AS sessao_fechamento, sessao.`permanencia` AS sessao_permanencia, sessao.`idCliente` AS sessao_idCliente, clientes.`CPF` AS clientes_CPF, sessao.`totalConta` AS sessao_totalConta, mensagemempresa.`mensagem` AS mensagemempresa_mensagem FROM `conta` conta INNER JOIN `sessao` sessao ON conta.`numConta` = sessao.`numNota` AND conta.`idSessao` = sessao.`idSessao` INNER JOIN `pedido` pedido ON conta.`numConta` = pedido.`numNota` INNER JOIN `clientes` clientes ON conta.`idCliente` = clientes.`idCliente` INNER JOIN `mensagemempresa` mensagemempresa ON conta.`idMensagem` = mensagemempresa.`idMensagem` AND clientes.`idCliente` = sessao.`idCliente` INNER JOIN `cardapio` cardapio ON pedido.`codigo` = cardapio.`codigo` WHERE sessao.idSessao = '"+idSessao+"' AND mensagemEmpresa.idMensagem = '"+idMensagem+"' "
);
// consulta.setInt(1, idSessao); //PEGA O PARAMETRO DA SUA APLICAÇÃO
// consulta.setInt(2, idMensagem);
ResultSet rs = consulta.executeQuery();
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
HashMap parameters = new HashMap();
// HashMap<String, Integer> map = new HashMap<String, Integer>();
String arquivoJasper = "C://MonteCook//dist//lib//CupomFiscal.jasper";
// map.put("idSessao", idSessao);
// String a = String.valueOf(cbIdMensagem.getSelectedItem());
// System.out.println(a);
// System.out.println(idSessao);
// map.put("idMensagem", Integer.valueOf(a));
// JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, map, conn.conn);
JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, parameters, jrRS);
//Vizualiza
JasperViewer.viewReport(jasperPrint,false);
//Imprime printReport(endereco\relatorio,false);
//JasperPrintManager.printReport("CupomFiscal.jrprint",false);
} catch(Exception e){
JOptionPane.showMessageDialog(null,"Relatorio nao pode ser exibido, Erro "+e,"Mensagem", 0);
e.printStackTrace();
}
Acima está o trecho que uso
Criado 20 de junho de 2009
Ultima resposta 22 de jun. de 2009
Respostas 2
Participantes 2
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo