Pessoal, fiz tudo certinho, mas estou encontrando um erro, que não sei solucionar, peço a ajuda de você;
Criei uma Fabrica de Conexão seguindo bons padrões de projeto.
package br.com.caelum.relatorio;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory
{
// methods
public Connection getConnection()
{
try
{
return DriverManager.getConnection("jdbc:mysql://localhost/financas", "root", "studo0207"); // está tudo certo, no terminal eu acesso com essa senha. Usuário é o root mesmo
} // end try
catch( SQLException erro )
{
throw new RuntimeException( erro );
} // end catch
} // end method getConnection
} // end class ConnectionFactory.java
Depois em outro pacote foi criado uma outra classe responsavel por gerar meus .jasper
package br.com.caleum.relatorio.teste;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import br.com.caelum.relatorio.ConnectionFactory;
public class TesteRelatorio
{
public static void main( String[] args ) throws SQLException, JRException, FileNotFoundException
{
Connection connection = new ConnectionFactory().getConnection();
JasperCompileManager.compileReportToFile("gasto_por_mes.jrxml");
// Map<String, Object> parameters = new HashMap<String, Object>();
// JasperPrint jasperPrint = JasperFillManager.fillReport("gasto_por_mes_jasper", parameters, connection);
// JRExporter exporter = new JRPdfExporter();
// exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
// exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, new FileOutputStream("gasto_por_mes.pdf") );
// exporter.exportReport();
connection.close();
} // end method main
} // end class TesteRelatorio.java
O que é estranho mesmo somente com as linhas a cima, ele gerou os .jasper normalmente porem dando o mesmo erro abaixo, ai fui tentar gerar o PDF, ele não gerou é continua apresentando o erro. Alguém pode me ajudar. Obrigado desde já.
Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at br.com.caelum.relatorio.ConnectionFactory.getConnection(ConnectionFactory.java:18)
at br.com.caleum.relatorio.teste.TesteRelatorio.main(TesteRelatorio.java:23)
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:927)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1709)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1252)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at br.com.caelum.relatorio.ConnectionFactory.getConnection(ConnectionFactory.java:14)
... 1 more