Ir al contenido principal

JasperReports en Maven

 Crear reportes en la aplicación jasperStudio y llamarlos desde una aplicación Maven



En internet hay muchos tutoriales enseñando a llamar reportes desde java, pero en todos usan Ant, o son video viejos y aún no existía maven. Por eso te comparto la forma en que yo lo resolví.

Códigos

Dependencias

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports -->
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>6.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.external</groupId>
            <artifactId>AbsoluteLayout</artifactId>
            <version>RELEASE90</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-pdfa</artifactId>
            <version>5.5.7</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.7</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
            <version>3.0.2</version>
        </dependency>
    </dependencies>

Librerias

import java.io.InputStream;
import java.sql.Connection;

import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

Clase que se conecta a la base de datos

package Backend;

import java.sql.Connection;
import java.sql.DriverManager;

public class ConectorJ {
    public static final String URL = "jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false";
    public static final String user = "test";
    public static final String password = "Contra12-34";
    private Connection connection;

    public ConectorJ() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            this.connection = (Connection)(DriverManager.getConnection(URL, user, password));
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }

    public Connection gConnection() {
        return this.connection;
    }
}

Método que invoca al reporte

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jButton1ActionPerformed
        ConectorJ cj = new ConectorJ();
        String reportPath = "src/main/java/Reports/persons.jasper";
        try (Connection connection = cj.gConnection()) {
            InputStream inputStream = JRLoader.getFileInputStream(reportPath);
            JasperPrint jPrint = JasperFillManager.fillReport(inputStream, null, connection);
            JasperViewer jViewer = new JasperViewer(jPrint, false);
            jViewer.setTitle("Personas registradas");
            jViewer.setExtendedState(Frame.MAXIMIZED_BOTH);
            jViewer.setVisible(true);
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }

BASE DE DATOS

CREATE SCHEMA `test`;
USE `test`;

DROP TABLE IF EXISTS `test`.`person`;

CREATE TABLE `test`.`person` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL,
  `age` INT NOT NULL,
  PRIMARY KEY (`id`));

INSERT INTO `test`.`person` (`name`,`age`) VALUES ('Daniel',19);
INSERT INTO `test`.`person` (`name`,`age`) VALUES ('Saraí',18);
INSERT INTO `test`.`person` (`name`,`age`) VALUES ('Pedrito',21);
INSERT INTO `test`.`person` (`name`,`age`) VALUES ('Andrea',28);

Comentarios

Entradas populares de este blog

Aprende VIM en un solo blog

 Configuración y uso de VIM| NEOVIM Explicación en video Abarcaremos desde la instalación, configuración y comandos para movernos en VIM o NEOVIM, no explicaremos todo, pero estoy seguro que después de leer este resumen, podrás moverte usando una de estas aplicaciones. Por cierto, te recomiendo usar neovim, es mejor (para mí). Vim y neovim usan los mismos comandos, no importa cuál se use, se usan los comandos vistos en este blog en ambos.

Hacer gráficos con graphviz en C#

 Conectar Graphviz con C# en una aplicación GUI   Explicación en video

RichTextBox con autocompeltado C#

Autocompletado de palabras y sugerencias Explicación en video Preliminares.     Muchos suelen mostrar autocompletados con TextBox, pero no nos sirven, queremos llenar un "area de texto" con varias lineas, Haremos uso de una extensión que   funciona como un ASP.NET