Skip to content

23. Anexos

Apresentamos aqui como instalar as ferramentas utilizadas neste documento em computadores com Windows 7 ou 8. As capturas de tela geralmente mostram as versões de 64 bits do SGBD e das ferramentas instaladas. O leitor deverá adaptar-se ao seu próprio ambiente.

23.1. Instalação de um JDK

No URL, o [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (outubro de 2014) é a versão mais recente do JDK. A partir de agora, chamaremos de <jdk-install> a pasta de instalação do JDK.

 

23.2. Instalação do Maven

O Maven é uma ferramenta de gerenciamento de dependências de um projeto Java e muito mais. Ele está disponível (outubro de 2014) no URL [http://maven.apache.org/download.cgi].

 

Baixe e descompacte o arquivo. Chamaremos de <maven-install> a pasta de instalação do Maven.

  • No [1], o arquivo [conf / settings.xml] configura o Maven;

Nele, encontramos as seguintes linhas:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
-->

O valor padrão da linha 4 pode causar problemas para alguns softwares que utilizam o Maven, caso, como no meu caso, seu {user.home} tenha um espaço no caminho (por exemplo, [C:\Users\Serge Tahé]). Vamos definir (linha 7) outra pasta para o repositório local do Maven:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>

Na linha 7, evite um caminho que contenha espaços.

23.3. Instalação do STS (Spring Tool Suite)

Vamos instalar o SpringSource Tool Suite [http://www.springsource.com/developer/sts] (outubro de 2014), um Eclipse pré-configurado com diversos plug-ins relacionados ao framework Spring e também com uma configuração do Maven pré-instalada.

  • acesse o site do SpringSource Tool Suite (STS) [1], para baixar a versão atual do STS [2A] [2B],
  • o arquivo baixado é um instalador que cria a estrutura de arquivos [3A] [3B]. No [4], executa-se o executável,
  • em [5], a janela de trabalho do IDE após fechar a janela de boas-vindas. Em [6], exibe-se a janela dos servidores de aplicativos,
  • em [7], a janela dos servidores. Um servidor está registrado. Trata-se de um servidor VMware compatível com Tomcat.

É necessário indicar ao STS a pasta de instalação do Maven:

  • no [1-2], configura-se o STS;
  • no [3-4], adiciona-se uma nova instalação do Maven;
  • em [5], especifica-se a pasta de instalação do Maven;
  • no [6], finaliza-se o assistente;
  • em [7], define-se a nova instalação do Maven como a instalação padrão;
  • em [8-9], verifica-se o repositório local do Maven, a pasta onde ele armazenará as dependências que baixar e onde STS colocará os artefatos que serão construídos;

Também é necessário selecionar um JDK (Java Development Kit) para executar tanto os projetos do Eclipse sem quanto com o Maven [1-5].

Com o [4], é possível adicionar JDK (Java Development Kit) ou JRE (Java Runtime Environment). Este último é capaz de executar arquivos .class, mas não sabe compilar os arquivos .java para gerá-los. O JDK é capaz de fazer as duas coisas. Escolheremos um JDK porque algumas operações do Maven exigem um JDK.

Para criar um projeto no Eclipse, proceda da seguinte maneira:

  • em [3], dê um nome ao projeto;
  • em [4], selecione uma pasta existente e vazia;
  • em [5], o projeto criado;
  • em [5-8], crie um pacote. Um pacote é uma pasta que contém código Java. Duas classes podem ter o mesmo nome se pertencerem a pacotes diferentes. Em um projeto, não pode haver dois pacotes com o mesmo nome. Portanto, não é possível usar um nome de pacote que já exista em uma das dependências do projeto. Uma empresa utilizará como nome de pacote um nome que especifique a empresa, o projeto e as diferentes ramificações deste;
  • em [9], dê um nome ao pacote;
  • em [10], o pacote criado;
  • em [11-13], cria-se uma classe no pacote que foi criado;
  • em [14], dê um nome à classe (deve seguir a norma CamelCase — cada palavra do nome deve começar com letra maiúscula seguida de letras minúsculas);
  • em [15], verifique o pacote;
  • em [16], marque a caixa de seleção. Ela solicita que o método estático [main] seja gerado. Esse método torna uma classe executável, ou seja, a primeira classe a ser executada em um projeto;
  • na classe [17], criada dessa forma;

Digite no método [main] o código a seguir, que exibe um texto no console:


package st.istia;

public class Test01 {

    public static void main(String[] args) {
        System.out.println("test01");
    }

}
  • em [18-20], execute a classe. Seu método [main] será então executado;
  • em [21-22], o resultado da aplicação;

Se a visualização [Console] não estiver presente, proceda da seguinte forma [1-4]:

É possível que, ao importar um projeto do Eclipse, ele apresente erros. Isso pode ser devido a uma configuração incorreta do projeto. Para corrigir o erro (se houver), proceda da seguinte forma:

  • no [1], altere o [Build Path] do projeto;
  • para [2], o projeto está configurado para usar um JVM 1.5;
  • em [3], remova essa dependência;
  • em [4], adicione uma nova dependência;
  • no [5], adicione um JVM;
  • no [6], selecione o JVM do item;

Feito isso, confirma-se tudo e passa-se para a propriedade [Java compiler] do projeto [7]:

  • em [8], solicita-se ao compilador que aceite todas as características da linguagem Java até a versão 1.7 (ou 1.8), inclusive;
  • em [9], valida-se;
  • em [10], o projeto assim reconfigurado não deve mais apresentar erros;

Além disso, o projeto importado pode utilizar uma codificação de caracteres UTF-8. Siga estas etapas para definir essa codificação no projeto importado [1-4]:

Além disso, pode ser útil desativar a verificação ortográfica no projeto para evitar que os comentários em francês sejam sublinhados como incorretos. Siga as etapas [1-4] abaixo:

23.4. Instalação do SGBD MySQL5 Community Edition

O SGBD MySQL5 Community Edition poderá ser encontrado (junho de 2015) no URL [https://dev.mysql.com/downloads/mysql/]:

 

A instalação ocorre da seguinte maneira:

  • no [8], foi utilizada a senha [root]. Neste documento, os identificadores do administrador do SGBD e do MySQL são [root / root];

Após a instalação do MySQL 5, acesse a página de gerenciamento de serviços do Windows:

  • [1]: ícone do Windows no canto inferior esquerdo;
  • em [8], configure o serviço [MySQL56] para inicialização manual, para que ele não consuma recursos desnecessariamente. Você poderá iniciá-lo a partir da página de serviços sempre que precisar;

23.5. Instalação do EMS e do MyManager

O site [http://www.sqlmanager.net/en/] oferece clientes gratuitos para gerenciar seis tipos de SGBD:

 

A vantagem é que todos eles apresentam a mesma interface para gerenciar os SGBD. Isso é ideal para este documento, no qual se deseja gerenciar os seis SGBD. Não é necessário aprender a usar um novo cliente ao mudar de SGBD. Todos eles podem ser encontrados no URL e no [http://www.sqlmanager.net/download/]. Baixaremos as versões gratuitas, conhecidas como lite:

 
 

Os arquivos URL disponíveis para download atualmente (maio de 2015) são os seguintes:

MySQL5
IBM DB2
Firebird / Interbase
Oracle
Microsoft SQL Server
PostgreSQL

Ao instalar, por exemplo, o cliente MyManager a partir do MySQL5, obtém-se a seguinte estrutura de diretórios:

  • o executável está em [2];
  • as etapas [3-8] mostram como conectar o [MyManager] a um dos bancos de dados do MySQL;
  • em [4], a senha é [root];

23.6. Instalação do SGBD Oracle Database Express Edition 11g Release 2

O SGBD Oracle Database Express Edition 11g Release 2 está disponível no URL (junho de 2015): [http://www.oracle.com/technetwork/database/database-techno logies/express-edition/downloads/index.html]:

 

A instalação ocorre da seguinte maneira:

  • em [6], digite a senha [system]. Neste documento, as credenciais do administrador do Oracle são [system / system];

A instalação configura o Oracle como um serviço do Windows. Vários serviços são instalados e, por padrão, todos estão configurados para iniciar automaticamente. A primeira coisa a fazer é alterá-los para o modo manual:

Dois serviços devem ser iniciados:

  • [OracleXETNSListener], que escuta na porta 1521 as solicitações feitas ao SGBD;
  • [OracleServiceXE], que é o SGBD;

Para administrar o Oracle, utilizaremos o cliente [OraManager] (parágrafo 23.5). Para que ele possa ser utilizado, é necessário instalar previamente o pacote [Oracle Database Express Edition 11g Release 2 Client], disponível no URL (junho de 2015): [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html]. É necessário baixar a versão de 32 bits, pois o [OraManager] é um cliente de 32 bits:

 

A instalação deste pacote é feita da seguinte maneira:

  • no [3], indique a pasta <oracleXE-install>\app\oracle\product\11.2.0\client_1, onde <oracleXE-install> é a pasta onde você instalou o Oracle Express;

Agora, vamos conectar o cliente [OraManager] ao Oracle SGBD:

  • no [2], o nome do grupo pode ser escolhido livremente;
  • em [4], é obrigatório inserir XE;
  • em [5], o alias é livre;
  • em [6], os identificadores são [system / system];

23.7. Instalação do SGBD PostgreSQL 9.4

O SGBD PostgreSQL 9.4 está disponível no URL (junho de 2015): [http://www.enterprisedb.com/products-services-training/pgdownload#windows]:

 

A instalação ocorre da seguinte maneira:

  • no [4], a senha é postgres. Neste documento, as credenciais do administrador do SGBD PostgreSQL são [postgres / postgres];

A instalação configura o PostgreSQL como um serviço do Windows com inicialização automática. A primeira coisa a fazer é colocá-lo no modo manual:

Agora, vamos conectar o cliente [PgManager] (ver parágrafo 23.5) ao SGBD PostgreSQL:

  • no [2], os identificadores são [postgres / postgres];
  • em [3], conecta-se ao banco de dados [postgres];

23.8. Instalação do SGBD DB2 Express

O SGBD DB2 Express está disponível no URL (junho de 2015): [http://www-01.ibm.com/software/data/db2/express-c/download.html]:

 

A instalação ocorre da seguinte maneira:

  • em [9], a senha é [db2admin]. Neste documento, as credenciais do administrador do SGBD são [db2admin / db2admin];
 

Observação: pode ser tentador pular esta etapa. Não se deve fazer isso. Ela criará a pasta onde serão armazenados os bancos de dados DB2 que iremos criar.

  • foi criada uma pasta [d:\DB2] [1];
  • o banco de dados [SAMPLE] foi criado na pasta [d:\db2\node0000];

A instalação configura o DB2 como um serviço do Windows com inicialização automática. A primeira coisa a fazer é colocá-lo no modo manual:

Faça isso para todos os serviços [DB2*] acima. Apenas o serviço [DB2 - DB2COPY1] precisa ser iniciado para os fins deste documento.

Agora, vamos conectar o cliente [Db2Manager] (ver parágrafo 23.5) ao SGBD e ao DB2:

  • em [1], utilizar os identificadores [db2admin / db2admin];

23.9. Instalação do SGBD SQL Server 2014 Express

O SGBD SQL Server 2014 Express está disponível no URL (junho de 2015): [http://www.microsoft.com/fr-fr/server-cloud/products/sql-server/]:

 

A instalação ocorre da seguinte maneira:

 
 
 
 
 
  • no [1], insira qualquer senha. Vamos alterá-la posteriormente;
 
 

Em seguida, iniciamos o serviço do servidor SQL:

Feito isso, iniciamos o cliente [Microsoft SQL Server Management Studio], que foi instalado junto com o SGBD (consulte o Menu Iniciar):

Seria possível utilizar esse cliente para administrar o servidor SQL. Porém, para manter a uniformidade com os clientes dos outros SGBD, utilizaremos o cliente [MsManager] (ver parágrafo 23.5).

  • no [1], anote o nome do SGBD;
  • no [2], foi definida a senha msde. Neste documento, as credenciais do administrador do SGBD são [sa / msde];

Feito isso, executamos a ferramenta [Gestionaire de configuration SQL Server], que foi instalada junto com o SGBD (ver Menu Iniciar):

  • Por padrão, no [2], a comunicação TCP/IP não está ativada. Para este documento, é necessário ativá-la no [3];
  • em [4], ainda para as necessidades deste documento, é necessário indicar que o SGBD aguarda as solicitações dos clientes na porta 1433. O valor de [Ports TCP dynamiques] deve estar vazio;

Feito isso, inicia-se o cliente [MsManager] (ver parágrafo 23.5):

  • no [3], insira o nome anotado no [1];
  • em [4], os identificadores são [sa / msde];
 

23.10. Instalação do SGBD Firebird

O SGBD Firebird 2.5.4 está disponível no URL (junho de 2015): [http://www.firebirdsql.org/en/firebird-2-5-4/]:

 

A instalação ocorre da seguinte maneira:

 

Feito isso, vamos verificar o modo de inicialização do serviço do Windows criado:

Vamos agora conectar o cliente [IBManager] (ver parágrafo 23.5) ao Firebird SGBD instalado:

  • no [1], a senha é masterkey;

23.11. Instalação do plugin do Chrome [Advanced Rest Client]

Neste documento, utilizamos o navegador Chrome do Google (http://www.google.fr/intl/fr/chrome/browser/). Vamos instalar nele a extensão [Advanced Rest Client]. Para isso, proceda da seguinte forma:

 
  • o aplicativo estará então disponível para download:
  • para obtê-la, você precisará criar uma conta do Google. O [Google Web Store] solicita, em seguida, a confirmação do [1]:
  • Em [2], a extensão adicionada fica disponível na opção [Applications] [3]. Essa opção é exibida em cada nova aba que você criar (CTRL-T) no navegador.

23.12. Gerenciamento do jSON em Java

De forma tra nsparente para o desenvolvedor, o framework [Spring MVC] utiliza a biblioteca jSON [Jackson]. Para ilustrar o que é o jSON (JavaScript Object Notation), apresentamos aqui um programa que serializa objetos em jSON e faz o inverso, deserializando as cadeias de caracteres jSON geradas para recriar os objetos iniciais.

A biblioteca 'Jackson' permite construir:

  • a string jSON de um objeto: new ObjectMapper().writeValueAsString(object);
  • um objeto a partir de uma string jSON: new ObjectMapper().readValue(jsonString, Object.class).

Ambos os métodos podem lançar uma exceção. Veja um exemplo.

  

O projeto acima é um projeto Maven com o seguinte arquivo [pom.xml];


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>istia.st.pam</groupId>
  <artifactId>json</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.3.3</version>
    </dependency>
  </dependencies>
</project>
  • linhas 12-16: a dependência que inclui a biblioteca 'Jackson';

A classe [Personne] é a seguinte:


package istia.st.json;

public class Personne {
    // dados
    private String nom;
    private String prenom;
    private int age;

    // fabricantes
    public Personne() {

    }

    public Personne(String nom, String prénom, int âge) {
        this.nom = nom;
        this.prenom = prénom;
        this.age = âge;
    }

    // assinatura
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }

    // getters e setters
...
}

A classe [Main] é a seguinte:


package istia.st.json;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Main {
  // a ferramenta de serialização/desserialização
  static ObjectMapper mapper = new ObjectMapper();

  public static void main(String[] args) throws IOException {
    // criação de uma pessoa
    Personne paul = new Personne("Denis", "Paul", 40);
    // exibição jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // instanciação de Pessoa a partir do JSON
    Personne p = mapper.readValue(json, Personne.class);
    // exibição de pessoa
    System.out.println("Personne=" + p);
    // uma tabela
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // exibição de JSON
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // dicionário
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // exibição de JSON
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

A execução dessa classe gera a seguinte exibição na tela:

1
2
3
4
Json={"nom":"Denis","prenom":"Paul","age":40}
Personne=Personne[Denis, Paul, 40]
Json personnes=[{"nom":"Denis","prenom":"Paul","age":40},{"nom":"Radot","prenom":"Virginie","age":20}]
Json hpersonnes={"2":{"nom":"Radot","prenom":"Virginie","age":20},"1":{"nom":"Denis","prenom":"Paul","age":40}}

Deste exemplo, destacamos:

  • o objeto [ObjectMapper] necessário para as transformações jSON / Objeto: linha 11;
  • a transformação [Personne] --> jSON: linha 17;
  • a transformação jSON --> [Personne]: linha 20;
  • a exceção [IOException] lançada pelos dois métodos: linha 13.