para ajudar poste a mensagem do erro e o código do método getText().
ps: só porque um CPF é composto por números não precisa ser int - vc pode mantêlo como texto e não terá problemas com isso, aliás um int pode assumir valores entre -2.147.483.648 e 2.147.483.647. um cpf brasileiro é maior que isso.
vou transformar ele em String então, RG entra no mesmo caso ?
aproveitando o topico, estou querendo colocar um relatorio em meu projeto
estou utilizando o Ireports
só que nao estou conseguindo faze-lo se juntar ao java, segue o codigo e logo abaixo o erro, Obrigado
[code]public class RelatorioDeClientes {
/**
* @param args
*/
public static void main(String[] args) {
try {
ConexaoBanco con = new ConexaoBanco();
HashMap parametros = new HashMap();
parametros.putAll(parametros);
JasperPrint jp = JasperFillManager.fillReport("Clientes/report1", parametros, con);
JasperViewer jrv = new JasperViewer(jp, false);
jrv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}[/code]
Segue o erro do console
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The method fillReport(String, Map, Connection) in the type JasperFillManager is not applicable for the arguments (String, HashMap, ConexaoBanco)
at RelatorioDeClientes.main(RelatorioDeClientes.java:29)
public static void main(String[] args) {
new RelatorioDeClientes().abrirRelatorioClientes();
}
public void abrirRelatorioClientes() {
InputStream inputStream = (InputStream) getClass().getResourceAsStream("C:/Java/javaWorkspace2/Clientes/report1.jasper");
// mapa de parâmetros do relatório (ainda vamos aprender a usar)
Map parametros = new HashMap();
try {
// abre o relatório
ReportUtils.openReport( "Clientes", inputStream, parametros,
ConnectionFactory.getSakilaConnection() );
} catch ( SQLException exc ) {
exc.printStackTrace();
} catch ( JRException exc ) {
exc.printStackTrace();
}
}
}[/code]
Classe ConnectionFactory
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
/*
* Este bloco estático será executado assim que esta classe for carregada,
* sendo assim, será executado apenas uma vez.
*/
static {
try {
/*
* Carrega a classe com.mysql.jdbc.Driver, que é a implementação
* do driver JDBC para o MySQL.
*/
Class.forName( "com.mysql.jdbc.Driver" );
// caso a classe não seja encontrada
} catch ( ClassNotFoundException exc ) {
/*
* Como log usaremos o stacktrace das excessões, mas recomendo
* que para um projeto real você utilize algum mecanismo de log
* melhor, como o Log4J por exemplo.
*/
exc.printStackTrace();
}
}
/**
* O método getConnection retorna uma conexão com o banco de dados baseado
* nos parâmetros fornecidos.
* @param url O endereço da base de dados.
* @param usuario O usuário que tem permissão na base de dados especificada.
* @param senha A senha do usuário especificado
* @return Uma conexão com o banco de dados especificado na url.
* @throws SQLException Caso ocorra algum problema durante a conexão.
*/
public static Connection getConnection(
String url,
String usuario,
String senha ) throws SQLException {
// retorna a conexão a partir do método getConnection de DriverManager
return DriverManager.getConnection( url, usuario, senha );
}
/**
* Obtém uma conexão para a base de dados sakila.
*
* @return Uma conexão para a base de dados sakila.
* @throws SQLException Caso ocorra algum problema durante a conexão.
*/
public static Connection getSakilaConnection() throws SQLException {
return getConnection(
"jdbc:mysql://localhost/dblanhouse",
"root",
"root" );
}
}
Classe ReportUtils
import java.awt.BorderLayout;
import java.sql.Connection;
import java.util.Map;
import com.lowagie.text.pdf.codec.Base64.InputStream;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;
import javax.swing.JFrame;
public class ReportUtils {
/**
* Abre um relatório usando uma conexão como datasource.
*
* @param titulo Título usado na janela do relatório.
* @param inputStream InputStream que contém o relatório.
* @param parametros Parâmetros utilizados pelo relatório.
* @param conexao Conexão utilizada para a execução da query.
* @throws JRException Caso ocorra algum problema na execução do relatório
*/
public static void openReport(
String titulo,
InputStream inputStream,
Map parametros,
Connection conexao ) throws JRException {
/*
* Cria um JasperPrint, que é a versão preenchida do relatório,
* usando uma conexão.
*/
JasperPrint print = JasperFillManager.fillReport(
inputStream, parametros, conexao );
// abre o JasperPrint em um JFrame
viewReportFrame( titulo, print );
}
/**
* Abre um relatório usando um datasource genérico.
*
* @param titulo Título usado na janela do relatório.
* @param inputStream InputStream que contém o relatório.
* @param parametros Parâmetros utilizados pelo relatório.
* @param dataSource Datasource a ser utilizado pelo relatório.
* @throws JRException Caso ocorra algum problema na execução do relatório
*/
public static void openReport(
String titulo,
InputStream inputStream,
Map parametros,
JRDataSource dataSource ) throws JRException {
/*
* Cria um JasperPrint, que é a versão preenchida do relatório,
* usando um datasource genérico.
*/
JasperPrint print = JasperFillManager.fillReport(
inputStream, parametros, dataSource );
// abre o JasperPrint em um JFrame
viewReportFrame( titulo, print );
}
/**
* Cria um JFrame para exibir o relatório representado pelo JasperPrint.
*
* @param titulo Título do JFrame.
* @param print JasperPrint do relatório.
*/
private static void viewReportFrame( String titulo, JasperPrint print ) {
/*
* Cria um JRViewer para exibir o relatório.
* Um JRViewer é uma JPanel.
*/
JRViewer viewer = new JRViewer( print );
// cria o JFrame
JFrame frameRelatorio = new JFrame( titulo );
// adiciona o JRViewer no JFrame
frameRelatorio.add( viewer, BorderLayout.CENTER );
// configura o tamanho padrão do JFrame
frameRelatorio.setSize( 500, 500 );
// maximiza o JFrame para ocupar a tela toda.
frameRelatorio.setExtendedState( JFrame.MAXIMIZED_BOTH );
// configura a operação padrão quando o JFrame for fechado.
frameRelatorio.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
// exibe o JFrame
frameRelatorio.setVisible( true );
}
}
Quando executo ele ja o seguinte erro
Exception in thread “main” java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.(Unknown Source)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.(ContextClassLoaderObjectInputStream.java:53)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:210)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:376)
at ReportUtils.openReport(ReportUtils.java:36)
at RelatorioDeClientes.abrirRelatorioClientes(RelatorioDeClientes.java:46)
at RelatorioDeClientes.main(RelatorioDeClientes.java:32)
OBS: os Jars do ireports já dei o add jars external.
Agradeço que me ajudar, estou desesperado para conseguir fazer.