Calling Jasper Report From Java Application Tutorial

Post on 14-Jul-2016

94 views 1 download

description

How to generate pdf from jasper report through java applications

Transcript of Calling Jasper Report From Java Application Tutorial

 o7planning

Calling Jasper Report from Java Application tutorial

1  Download JasperReport library for Java2  Download JDBC Drivers3  Prepare reports4  Create a Java project and declare library5  Generate PDF6  The utility classes to connect some kind of Database7  Pass Datasource and Parameters

1 Download JasperReport library for Java

http://community.jaspersoft.com/download

Related Document Categories

Report Programming

Java Basic

What is needed to get started with Java?

Guide to Installing and Configuring Java

Guide to Installing and Configuring Eclipse

Quick Learning Java for beginners

JDK Javadoc in CHM format

Inheritance and polymorphism in Java

Abstract class and Interface in Java

Access modifiers in Java

Java Enum Tutorial

Java Annotation Tutorial

Comparison and sorting in Java

Java  String,  StringBuffer  and  StringBuilderTutorial

All Tutorials Java Android C# C/C++ Database Report Client Others

Java Exception Handling Tutorial

Java Generics Tutorial

Java Collection Framework Tutorial

Java IO Tutorial  Binary Streams

Java IO Tutorial  Character Streams

Java Date Time Tutorial

Syntax and new features in Java 8

Java Regular expression Tutorial

Java Multithreading Programming Tutorial

JDBC Driver Libraries  for different  types ofdatabase in Java

Java JDBC tutorial

Java Compression Tutorial

Java reflection Tutorial

Java remote method invocation  Java RMITutorial

Java Socket Programming Tutorial

Java  Desktop  Application  Programmingusing SWT

Eclipse JFace Tutorial

Commons IO Tutorial

Commons Logging Tutorial

Advanced Java

Java  Programming  for  team  using  Eclipseand SVN

Customize  java  compiler  processing  yourAnnotation (Annotation Processing Tool)

Java Aspect Oriented Programming Tutorialwith AspectJ (AOP)

Install Maven into Eclipse

Maven Tutorial for Beginners

Maven Manage Dependencies

Setup  a  Multiple  Module  Project  usingMaven

Install JBoss Tools into Eclipse

Java Hibernate Tutorial for Beginners

Using  Hibernate  Tools  generate  entityclasses from Tables

Serverside Programming

Configuring Tomcat Server in Eclipse

Guide  to  installing  and  configuringGlassfish Web Server

Java Servlet Tutorial for Beginners

Java Servlet Filter Tutorial

Java JSP Tutorial for Beginners

Install Web Tools Platform into Eclipse

Create  a  Simple  Web  Application  UsingServlet, JSP and JDBC

Using  Google  reCAPTCHA  with  Java WebApplication

Result:

Run  Maven  Web  Application  in  TomcatMaven Plugin

Run Maven Web Application in Jetty MavenPlugin

Struts2 Tutorial for Beginners

Spring  MVC  Tutorial  for  Beginners    HelloSpring 4 MVC

Simple Login Web Application using SpringMVC, Spring Security and Spring JDBC

Spring  MVC  and  Hibernate  TransactionTutorial

Struts2 Framework

Struts2 Tutorial for Beginners

Struts2  Tutorial  for  Beginners  (AnnotationConfiguration)

Spring Framework

Spring Tutorial for Beginners

Spring  MVC  Tutorial  for  Beginners    HelloSpring 4 MVC

Install Spring Tool Suite into Eclipse

Configuring  Static  Resource  and  ResourceBundle in Spring MVC Tutorial

Unzip the downloaded file:

Spring MVC File Upload Tutorial

Spring JDBC Tutorial

Simple Login Web Application using SpringMVC, Spring Security and Spring JDBC

Spring MVC and Velocity Tutorial

Using Template in Spring MVC with ApacheTiles

Spring MVC and Spring  JDBC TransactionTutorial

Spring  MVC  and  Hibernate  TransactionTutorial

Eclipse Technology

Install  AspectJ  development  tools  intoEclipse

Java Aspect Oriented Programming Tutorialwith AspectJ (AOP)

How  to  get  the  open  source  Java  librariesas OSGi(s)

Install Tycho into Eclipse

Java OSGi Tutorial for Beginners

OSGi and AspectJ integration

Building  OSGi  project  with  Maven  andtycho

Install WindowBuilder into Eclipse

Java  Desktop  Application  Programmingusing SWT

2 Download JDBC Drivers

If the report connected to a database, you need to have the JDBC drivers:

Eclipse JFace Tutorial

Install  e4  Tools  Developer  Resources  intoEclipse

Eclipse  RCP  4  Tutorial  for  Beginners    E4Workbench Application

Guide  to  Packing  and  Deploying  DesktopApplication SWT/RCP

Install RAP tools into Eclipse

Install RAP e4 Tooling into Eclipse

Install Eclipse RAP Target Platform

Eclipse RAP Tutorial  for Beginners   BasicApplication

Eclipse  RAP  Tutorial  for  Beginners    e4Workbench Application

Create  Eclipse  RAP  Widget  fromClientScriptingbased widget

Guide  to  packaging  and  deploying  EclipseRAP application

Install GEF into Eclipse

Eclipse  RAP  Tutorial  for  Beginners  Workbench Application (Earlier e4)

Eclipse  RCP  3  Tutorial  for  Beginners  Workbench Application

Simple  Eclipse  RCP  3  Application    Viewand Editor integration

Java API for HTML & XML

You can see the guide to download JDBC Driver at:

http://o7planning.org/web/fe/default/en/document/21135/jdbcdriverlibrariesfordifferenttypesofdatabaseinjava

3 Prepare reports

You need a JasperReport file. We will run that report on Java. You can download an example of areport file at:

https://community.jaspersoft.com/sites/default/files/files/StyledTextReport.zip

Unzip the downloaded file, we will have jrxml file.

Parsing an XML File Using SAX

JDOM2 Tutorial

JAXB Tutorial

Java XStream Tutorial

Jsoup Java Html Parser Tutorial

Java Open source libraries

Skype Java API Tutorial

Using Scribe OAuth  Java API with GoogleOAuth 2 Tutorial

JDOM2 Tutorial

Java XStream Tutorial

Jsoup Java Html Parser Tutorial

Retrieving Geographic information based onIP Address using GeoIP2 Java API

Newest Documents

XML Parser for Oracle PL/SQL

Creating and Managing Oracle Wallet

Android Fragments Tutorial

Guide  to  Installing  Intel  HardwareAccelerated  Execution  Manager  (Intel®HAXM)

4 Create a Java project and declare library

Create Java Project:

JavaCallJasperReportTutorial

Create a libs folder and copy the most vital libraries into this folder, including:

Android GridView Tutorial

Install  C/C++  Development  Tooling  intoEclipse

Guide to Installing C/C++ Compiler CygWin

Guide to Installing C/C++ Compiler MinGW

Guide  to  Installing  and  Configuring  VisualStudio 2013

Java XStream Tutorial

Quick Link

1  Download JasperReport library for Java2  Download JDBC Drivers3  Prepare reports4  Create a Java project and declare library5  Generate PDF6  The utility classes to connect some kind ofDatabase7  Pass Datasource and Parameters

commonsbeanutils*.jarcommonscollections*.jarcommonsdigester*.jarcommonslogging*.jargroovyall*.jaritextpdf*.jaritextpdfa*.jarjasperreports*.jar

Next, copy Database Driver into libs folder. Here I copy all of three JDBC Driver into Database typesincluding Oracle, MySQL, SQLServer. 

4  0  0  0

 

 

To declare the library, rightclick Project and select Properties

Select all the jar files in the libs folder:

5 Generate PDF

Here is a simple example, Java will call to report JasperReport and generate PDF file. This simpleexample does not have the participation of the Database.

PdfFromXmlFile.java

12

package org.o7planning.tutorial.javajasperreport; 

?

23456789

101112131415161718192021222324252627282930313233343536373839404142434445

46

 import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map; import net.sf.jasperreports.engine.JRDataSource;import net.sf.jasperreports.engine.JREmptyDataSource;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperReport; public class PdfFromXmlFile {    public static void main(String[] args) throws JRException, IOException {         // Compile jrxml file.       JasperReport jasperReport = JasperCompileManager               .compileReport("C:/jasperreport/StyledTextReport/StyledTextReport.jrxml"        // Parameters for report       Map<String, Object> parameters = new HashMap<String, Object>();        // DataSource       // This is simple example, no database.       // then using empty datasource.       JRDataSource dataSource = new JREmptyDataSource();        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,               parameters, dataSource);            // Make sure the output directory exists.       File outDir = new File("C:/jasperoutput");       outDir.mkdirs();        // Export to PDF.       JasperExportManager.exportReportToPdfFile(jasperPrint,               "C:/jasperoutput/StyledTextReport.pdf");               System.out.println("Done!");

   }

Results of running the example:

4647

   }}

6 The utility classes to connect some kind of Database

OracleMySQLSQLServer

OracleConnUtils.java

123456789

101112131415161718192021

package org.o7planning.tutorial.javajasperreport.conn; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class OracleConnUtils {     public static Connection getOracleConnection()            throws ClassNotFoundException, SQLException {        String hostName = "localhost";        String sid = "db11g";        String userName = "learningsql";        String password = "12345";         return getOracleConnection(hostName, sid, userName, password);    }     public static Connection getOracleConnection(String hostName, String sid,            String userName, String password) throws ClassNotFoundException,            SQLException {

?

MySQLConnUtils.java

212223242526272829303132333435363738

            SQLException {               // Declare the class Driver for ORACLE DB        // This is necessary with Java 5 (or older)        // Java6 (or newer) automatically find the appropriate driver.        // If you use Java> 5, then this line is not needed.            Class.forName("oracle.jdbc.driver.OracleDriver");          // Example: jdbc:oracle:thin:@localhost:1521:db11g        String connectionURL = "jdbc:oracle:thin:@" + hostName + ":1521:" + sid;         Connection conn = DriverManager.getConnection(connectionURL, userName,                password);        return conn;    }}

123456789

101112131415161718

19

package org.o7planning.tutorial.javajasperreport.conn; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class MySQLConnUtils {     public static Connection getMySQLConnection()            throws ClassNotFoundException, SQLException {        String hostName = "localhost";        String dbName = "learningsql";        String userName = "root";        String password = "12345";        return getMySQLConnection(hostName, dbName, userName, password);    }     public static Connection getMySQLConnection(String hostName, String dbName,

            String userName, String password) throws SQLException,

?

SQLServerConnUtils.java

192021222324252627282930313233343536

            String userName, String password) throws SQLException,            ClassNotFoundException {         // Declare the class Driver for MySQL DB        // This is necessary with Java 5 (or older)        // Java6 (or newer) automatically find the appropriate driver.        // If you use Java> 5, then this line is not needed.        Class.forName("com.mysql.jdbc.Driver");         // Cấu trúc URL Connection dành cho Oracle        // Ví dụ: jdbc:mysql://localhost:3306/simplehr        String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName;         Connection conn = DriverManager.getConnection(connectionURL, userName,                password);        return conn;    }}

123456789

101112131415161718

19

package org.o7planning.tutorial.javajasperreport.conn; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class SQLServerConnUtils {         // Connect to SQLServer    // (Using JDBC Driver: SQLJDBC)    public static Connection getSQLServerConnection_SQLJDBC()            throws ClassNotFoundException, SQLException {        String hostName = "localhost";        String sqlInstanceName = "SQLEXPRESS";        String database = "learningsql";        String userName = "sa";        String password = "12345"; 

        return getSQLServerConnection_SQLJDBC(hostName, sqlInstanceName,

?

1920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

63

        return getSQLServerConnection_SQLJDBC(hostName, sqlInstanceName,                database, userName, password);    }         // Connect to SQLServer & using JTDS library    public static Connection getSQLServerConnection_JTDS() throws SQLException,            ClassNotFoundException {        String hostName = "learningsql";        String sqlInstanceName = "SQLEXPRESS";        String database = "simplehr";        String userName = "sa";        String password = "12345";         return getSQLServerConnection_JTDS(hostName, sqlInstanceName, database,                userName, password);    }        // Connect to SQLServer    // (Using JDBC Driver: SQLJDBC)    private static Connection getSQLServerConnection_SQLJDBC(String hostName,            String sqlInstanceName, String database, String userName,            String password) throws ClassNotFoundException, SQLException {         // Declare the class Driver for SQLServer DB        // This is necessary with Java 5 (or older)        // Java6 (or newer) automatically find the appropriate driver.        // If you use Java> 5, then this line is not needed.        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");         // jdbc:sqlserver://ServerIp:1433/SQLEXPRESS;databaseName=simplehr        String connectionURL = "jdbc:sqlserver://" + hostName + ":1433"                + ";instance=" + sqlInstanceName + ";databaseName=" + database;         Connection conn = DriverManager.getConnection(connectionURL, userName,                password);        return conn;    }        // Connect to SQLServer & using JTDS library    private static Connection getSQLServerConnection_JTDS(String hostName,            String sqlInstanceName, String database, String userName,            String password) throws ClassNotFoundException, SQLException { 

        // Declare the class Driver for SQLServer DB

ConnectionUtils.java

63646566676869707172737475767778

        // Declare the class Driver for SQLServer DB        // This is necessary with Java 5 (or older)        // Java6 (or newer) automatically find the appropriate driver.        // If you use Java> 5, then this line is not needed.            Class.forName("net.sourceforge.jtds.jdbc.Driver");         // jdbc:jtds:sqlserver://localhost:1433/simplehr;instance=SQLEXPRESS        String connectionURL = "jdbc:jtds:sqlserver://" + hostName + ":1433/"                + database + ";instance=" + sqlInstanceName;         Connection conn = DriverManager.getConnection(connectionURL, userName,                password);        return conn;    } }

123456789

1011121314151617181920

21

package org.o7planning.tutorial.javajasperreport.conn; import java.sql.Connection;import java.sql.SQLException; public class ConnectionUtils {     public static Connection getConnection() throws SQLException,            ClassNotFoundException {         // Using Oracle        // You may be replaced by other Database.        return OracleConnUtils.getOracleConnection();    }     //    // Test Connection ...    //    public static void main(String[] args) throws SQLException,            ClassNotFoundException {

 

?

7 Pass Datasource and Parameters

The following example will be more complex than the previous example. We will pass parameters anddatabase connection  into report from Java.

JavaCallJasperReport.java

2122232425262728293031

         System.out.println("Get connection ... ");         // Get a Connection object        Connection conn = ConnectionUtils.getConnection();         System.out.println("Get connection " + conn);         System.out.println("Done!");    }}

123456789

1011121314151617181920

package org.o7planning.tutorial.javajasperreport; import java.io.File;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.JasperCompileManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.export.JRPdfExporter;import net.sf.jasperreports.export.ExporterInput;import net.sf.jasperreports.export.OutputStreamExporterOutput;import net.sf.jasperreports.export.SimpleExporterInput;import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;import net.sf.jasperreports.export.SimplePdfExporterConfiguration; 

?

2021222324252627282930313233343536373839404142434445464748495051525354555657585960616263

64

 import org.o7planning.tutorial.javajasperreport.conn.ConnectionUtils; public class JavaCallJasperReport {     public static void main(String[] args) throws JRException,            ClassNotFoundException, SQLException {         String reportSrcFile = "F:/ECLIPSE_TUTORIAL/JASPERREPORT/HelloJasperReport/FirstJasperReport.jrxml"                 // First, compile jrxml file.        JasperReport jasperReport =    JasperCompileManager.compileReport(reportSrcFile);         Connection conn = ConnectionUtils.getConnection();         // Parameters for report        Map<String, Object> parameters = new HashMap<String, Object>();         JasperPrint print = JasperFillManager.fillReport(jasperReport,                parameters, conn);         // Make sure the output directory exists.        File outDir = new File("C:/jasperoutput");        outDir.mkdirs();         // PDF Exportor.        JRPdfExporter exporter = new JRPdfExporter();         ExporterInput exporterInput = new SimpleExporterInput(print);        // ExporterInput        exporter.setExporterInput(exporterInput);         // ExporterOutput        OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(                "C:/jasperoutput/FirstJasperReport.pdf");        // Output        exporter.setExporterOutput(exporterOutput);         //        SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();        exporter.setConfiguration(configuration);        exporter.exportReport();         System.out.print("Done!");

    }

o7planning.org

6465

    }}