Thiago Hernandes de Souza
© !
"
$!%!&'()*+
!!"# $%&'%#()(%##*'+"
,
-' " ' .. " /!' "!0!' 1!2
'"
3-46'
!'
838 .
9.
:
+
:
9, !" ! .
"
" " 1" ." ;
46' "
" ""' ! -"
1'"<1!;!
!'"461-46 =.
"+4""
2
!!","!!>!
!"#$%&' !
,-./'0
1!!&
?@>! ')&%A
% 8"46"
B8") >!
"
46
C
DE@#F*G*HGA##G&A$$GH&&H
&&I
)$+
+ ,-./0
1,1/234+5647864
#938:33487...3; <938:33487.=5.
7!$$>$+%+2
???+$+%+243;8@
Dedicatória
“Confia ao SENHOR as tuas obras, e teus pensamentos
serão estabelecidos.”
(Provérbios 16:3)
Primeiramente ao Senhor Jesus Cristo, por fazer o intermédio junto a Deus
trazendo na medida do possível, o conhecimento necessário para o desenvolvimento dessa obra.
Também, ao meu avô materno (in memorian), popular Chiquinho (Francisco),
meu avô paterno (in memorian), Leodoro e a minha avó materna (in memorian),
Izaura, que não tiveram a oportunidade de contemplar esse trabalho.
Não esquecendo de toda minha família e principalmente, da fonte inesgotável
de alegria e paz transmitida por minha amada filha, Maria Eduarda.
Agradecimentos
“O vinho é escarnecedor, a bebida forte alvoroçadora;
e todo aquele que neles errar nunca será sábio.”
(Provérbios 20:1)
Agradeço a Deus, pelos momentos em que me falou em silêncio: “Vai, faça!
Continue o que começou”.
Também, a força que sempre me alçou ao pensar em alguém como minha filha,
Maria Eduarda (5 aninhos) que um dia entenderá esse trabalho.
Não bastante, aos meus familiares (mãe, pai, irmã e avó paterna) e namorada,
com quem sempre pude compartilhar um pouco do que está se passando em
minha vida.
Introdução
Com o crescimento de frameworks1 e demais tecnologias para o cenário mundial voltado para o desenvolvimento Java, muitas informações em banco de dados
ficaram a mercê de uma boa ferramenta de desenvolvimento, manipulação de dados e
apresentações de estatísticas.
Para isso, o surgimento das ferramentas iReport (projeto mantido pela
JasperReports) e Pentaho Design concretizaram uma forte parceria de integração com
aplicações Java, onde o objetivo se resume em abstrair dados abastecidos em banco de
dados e formatá-los de forma a aparecer ao usuário final com uma estética profissional
e agradável, além de possibilitar funcionalidades extras como impressão e exportação para outros formatos (PDF, XLS, DOC, ODT, etc).
Toda projeção em ambos os relatórios das ferramentas são baseados em objetos
e linhas de códigos, tais como XML, instruções SQL e funções disponíveis referente a
cada tipo de componente.
Sendo assim, de nada adianta ter informações se não tiver estatísticas e formas
facilitadoras de entendimento pelo usuário final.
1 Consiste em uma abstração que une códigos comuns entre vários projetos de software possibilitando uma
funcionalidade genérica.
Sumário
Capítulo 1
Preparando o Ambiente .............................................................................................. 1
1.1 JDK (Java Development Kit) ...................................................................... 1
1.2 JRE (Java Runtime Enviroment) ............................................................... 2
1.3 Variável de Ambiente JAVA_HOME .......................................................... 3
1.4 Netbeans ..................................................................................................... 6
1.5 WAMPSERVER ............................................................................................ 6
1.6 Toad for MySQL .......................................................................................... 7
1.7 PostgreSQL ................................................................................................. 8
1.8 PgAdmin ...................................................................................................... 9
1.9 iReport ......................................................................................................... 9
1.10 Pentaho Design ...................................................................................... 10
Capítulo 2
Java e Banco de Dados .............................................................................................. 13
2.1 Sistemas de Banco de Dados Relacionais .......................................... 13
2.1.1. Estruturas Relacionais .............................................................. 14
2.1.2. Integridade .................................................................................. 14
2.1.3. Primary Key – Chave Primária ................................................. 15
2.1.4. Foreign Key – Chave Estrangeira ............................................. 16
2.1.5. SQL (Structured Query Language) ........................................... 16
X
Relatórios Profissionais para Aplicações Java...
2.1.6. Criando um Banco de Dados com o MySQL .......................... 17
2.1.6.1. Principais Tipos de Dados ............................................. 21
2.1.6.2. Tabelas ............................................................................. 22
2.1.6.3. Atributos .......................................................................... 34
2.1.7. Criando um Banco de Dados com o PostgreSQL .................. 36
2.1.7.1. Principais Tipos de Dados ............................................. 39
2.1.7.2. Tabelas ............................................................................. 39
2.1.7.3. Atributos ........................................................................... 51
2.1.8. JDBC (Java Database Connectivity API) .................................. 52
2.1.8.1. Conectores: MySQL e PostgreSQL ............................... 53
2.1.9. Java............................................................................................... 53
2.1.9.1. Conectando, Inserindo, Alterando, Excluindo e
Retornando Consultas .................................................................. 54
2.1.9.1.1. Com o MySQL ........................................................ 54
2.1.9.1.2. Com o PostgreSQL ................................................ 76
Capítulo 3
iReport .......................................................................................................................... 91
3.1 Criando o Primeiro Arquivo de Relatório .............................................. 91
3.1.1. Entendendo a Estrutura do Relatório ..................................... 93
3.1.2. Conhecendo os Principais Componentes ............................... 95
3.1.3.Criando Conexão com Banco .................................................... 96
3.1.3.1. MySQL .............................................................................. 96
3.1.3.2. PostgreSQL ...................................................................... 98
3.1.4. Instruções SQL ............................................................................ 99
3.1.4.1. Definindo ...................................................................... 100
3.1.4.2. Parametrizando ........................................................... 103
3.1.5. Subrelatórios ............................................................................ 105
3.1.6. Código de Barras ..................................................................... 114
3.1.7. Gráficos ......................................................................................116
Sumário
XI
Capítulo 4
Pentaho ......................................................................................................................121
4.1 Criando o Primeiro Arquivo de Relatório ............................................121
4.1.1. Entendendo a Estrutura do Relatório .................................. 123
4.1.2. Conhecendo os Principais Componentes ............................. 124
4.1.3. Criando Conexão com o Banco .............................................. 124
4.1.3.1. MySQL ........................................................................... 125
4.1.3.2. PostgreSQL ....................................................................127
4.1.4. Instruções SQL ......................................................................... 128
4.1.4.1. Definindo ...................................................................... 129
4.1.4.2. Parametrizando ........................................................... 130
4.1.5. Subrelatórios ............................................................................ 132
4.1.6. Código de Barras ..................................................................... 136
4.1.7. Gráficos ...................................................................................... 137
Capítulo 5
Desenvolvendo Aplicações Java SE e EE para chamar Relatórios “.jasper”
(iReport) .................................................................................................................... 143
5.1 Aplicação Java SE (desktop) sem Parâmetro .................................. 143
5.2 Parametrizando uma aplicação Java SE ........................................... 147
5.3 Aplicação web sem Parâmetro .......................................................... 149
5.4 Parametrizando uma aplicação Java EE .......................................... 154
5.5 Chamando um relatório parametrizado do iReport através de um
arquivo XHTML .............................................................................................. 156
Capítulo 6
Desenvolvendo Aplicações Java SE e EE para chamar Relatórios “.prpt”
(Pentaho) .................................................................................................................... 161
6.1 Aplicação Java SE (desktop) sem Parâmetro .................................... 161
XII
Relatórios Profissionais para Aplicações Java...
6.2 Parametrizando uma aplicação Java SE ............................................166
6.3 Aplicação web sem parâmetro ............................................................168
6.4 Parametrizando uma aplicação Java EE ............................................ 172
6.5 Chamando um relatório parametrizado do Pentaho através de um
arquivo XHTML ............................................................................................... 174
Capítulo 7
Praticando com Java ................................................................................................ 177
7.1 MySQL – inserir, alterar, excluir e retornar dados ............................ 177
7.1.1. Definindo as classes ................................................................ 178
7.1.2. Definindo os frames ................................................................. 182
7.2 PostgreSQL .............................................................................................. 194
Capítulo 1
Preparando o Ambiente
1.1 JDK (Java Development Kit)
O JDK é o kit de desenvolvimento Java. Composto por diversas classes,
bibliotecas e compilador.
Através desse kit, que a criação de aplicações Java são possíveis.
Para adquiri-lo acesse: http://www.oracle.com/technetwork/java/javase/
downloads/jdk-7u3-download-1501626.html
Em seguida, aceite (Figura 1) as condições da licença da Oracle e escolha
(Figura 2) o instalativo de acordo com a versão do Windows instalada na máquina para
o desenvolvimento das aplicações Java.
Figura 1 – Aceitar as condições de licença da Oracle
Figura 2 – Escolher a versão do instalativo do Windows: 32 ou 64 bits
2
Relatórios Profissionais para Aplicações Java...
1.2 JRE (Java Runtime Enviroment)
É o ambiente de execução Java. Tem a função de executar as aplicações da
plataforma Java. É composto por bibliotecas e pela Máquina Virtual Java (JVM).
A função da JVM é carregar e executar os aplicativos Java, fazendo em
seguida, a conversão dos códigos escritos pela linguagem Java em bytecodes. Ou seja,
graças a JVM, aplicações Java podem funcionar em qualquer plataforma de hardware
(Windows ou UNIX).
Para fazer download, acesse: http://www.oracle.com/technetwork/java/
javase/downloads/jre7-downloads-1637588.html
É o mesmo procedimento do JDK. Deve-se aceitar (Figura 3) a licença da Oracle
e escolher (Figura 4) a versão do sistema operacional.
Figura 3 – Aceitar a licença da Oracle
Figura 4 – Escolher a versão do sistema operacional
Para instalar tanto o JDK, quanto o JRE são passos simples sem complicações.
Os diretórios usuais de instalação do JDK e JRE são respectivamente:
JDK - C:\Program Files\Java\jdk1.7.0_03
JRE - C:\Program Files\Java\jre7
Capítulo 1 - Preparando o Ambiente
3
1.3 Variável de Ambiente JAVA_HOME
É essa variável de ambiente que mostra ao sistema operacional onde está
instalado o kit de desenvolvimento do Java. Através dela, fica definido o caminho
onde se encontram as classes e bibliotecas relacionadas às funcionalidades de
desenvolvimento de aplicações Java.
Para criá-la, observe as Figuras: 5 a 10:
Figura 5 – Vá ao “Menu Iniciar” e selecione com o botão direito “Computador”
Figura 6 – Escolha a opção “Propriedades”
Figura 7 – Selecione “Configurações avançadas do sistema”
4
Relatórios Profissionais para Aplicações Java...
Figura 8 – Agora, clique em “Variáveis de Ambiente...”
Figura 9 – Em “Variáveis do Sistema” escolha “Novo...”
Capítulo 1 - Preparando o Ambiente
Figura 10 – Parametrizando a variável de ambiente JAVA_HOME
e o diretório de instalação do JDK
Figura 10a – Selecionar a variável de sistema “Path” e
em seguida clicar no botão “Editar”
Figura 10b – No final do valor da variável colocar: “;%JAVA_HOME%\bin”
OBS: Sem as aspas duplas.
5
6
Relatórios Profissionais para Aplicações Java...
1.4 Netbeans
O Netbeans é uma ferramenta GUI (Graphical User Interface) para
desenvolvimento de aplicações. Possibilita a criação tanto de aplicações Java SE
(desktop), quanto Java EE (web), além de possibilitar a criação de serviços e diversos
outros mecanismos para integração com aplicações, bibliotecas e/ou frameworks.
Possibilita, ainda, a integração com diversos servidores (TomCat, Geronimo,
Glassfish, Jetty, etc.) sem contar a possibilidade da instalação de plugins2 de tecnologias
de terceiros em seu ambiente.
Para adquiri-lo, acesse: http://netbeans.org/downloads/index.html
Figura 11 – Escolha a distribuição Java EE
1.5 WAMPSERVER
É um ambiente de desenvolvimento web para Windows. Permite a criação de
aplicações utilizando: Apache, PHP e MySQL.
Será utilizado dessa ferramenta apenas o banco de dados MySQL para os projetos
desenvolvidos em Java no Netbeans.
2 É um módulo de extensão. Pode ser chamado também, de plug-in, add-in ou add-on. Muito usado para
adicionar funções a outros programas.
Capítulo 1 - Preparando o Ambiente
7
Faça o download em: http://www.wampserver.com/en/
Figura 12 – Selecione o item de menu “DOWNLOAD”
Figura 13 – Selecione o WAMPSERVER conforme o
modo binário do sistema operacional
1.6 Toad for MySQL
É uma ferramenta GUI de gerenciamento e administração de banco de dados
MySQL.
Proporciona a criação de scripts prontos estruturados a fim de auxiliar o DBA3.
Faça o download em: http://www.quest.com/toad-for-mysql/
3 Database Administrator – Administrador de Banco de Dados. Termo muito utilizado no cenário mundial
de TI (Tecnologia da Informação)
8
Relatórios Profissionais para Aplicações Java...
Figura 14 – Página de download4 do Toad for MySQL
1.7 PostgreSQL
É um poderoso banco de dados, objeto-relacional que possui um completo
gerenciador GUI, denominado PgAdmin.
Além de toda sua funcionalidade e robustez, atende a quesitos de banco de
dados geográficos (SIG – Sistemas de Informações Geográficas).
Sem dúvida, uma excelente opção para empresas que não querem gastar com
licenças de banco de dados.
Faça o download em: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows
Figura 15 – Página de download do PostgreSQL
4 É necessário um cadastro para baixar a ferramenta
Capítulo 1 - Preparando o Ambiente
9
1.8 PgAdmin
É o grande aliado do PostgreSQL. Engloba diversas funcionalidades para
agilidade e rapidez no desenvolvimento de estruturas de banco de dados como: tabelas,
indexes, chaves, funções, etc.
Será utilizada como auxílio no desenvolvimento e manipulação de estruturas e
dados com o banco de dados PostgreSQL.
Figura 16 - PgAdmin
1.9 iReport
É uma das mais populares bibliotecas para relatórios Java. Abrange um design
visual mantido pela comunidade JasperReports. Seus relatórios podem ser acessados
de qualquer aplicação Java.
Suporta diversos formatos em sua saída. Ou seja, pode gerar arquivos dos
tipos: PDF, OpenOffice, DOCX, XLS, dentre outros.
Além da criação de relatórios, fará "pontes" ou ligações com os banco de dados:
MySQL ou PostgreSQL. Fazendo com que, a consulta e o acesso a informações a um
banco de dados sejam feitos por funcionalidades oriundas do iReport e não por uma
aplicação.
Faça o download em: http://community.jaspersoft.com/project/ireportdesigner/releases
10
Relatórios Profissionais para Aplicações Java...
Figura 17 – Download do iReport
1.10 Pentaho Design
Teve início a partir da biblioteca JFreeReport, sucessora da implementação
do projeto JFreeChart, de David Gilbert. Em que era baseado em relatórios Swing
widget.
Em seguida, Thomas Morgner adicionou novas funcionalidades ao projeto
JFreeReport e se tornou o principal pioneiro.
Em meados de 2006, a biblioteca JFreeReport se une a uma companhia de BI
(Business Intelligence) denominada Pentaho Reporting. Paternizando assim, o
surgimento do Pentaho.
Possui características semelhantes a do iReport, porém, com diferenças
quanto a: sintaxe, estrutura e concretização de relatórios estatísticos.
Adquira em: http://community.pentaho.com/projects/bi_platform/
design_studio.php
Download

Thiago Hernandes de Souza