Integração Contínua: Configurar Acesso ao Banco de Dados

Configurando a execução dos scripts no Liquibase

Após a configuração do plugin do Liquibase no Gradle é necessário informar aonde estão os arquivos SQL que serão executados.

Vejam as configurações na Listagem 8.

Listagem 8. Arquivo de configuração db.changelog-master.yaml do Liquibase

databaseChangeLog:
  - include:
  - file: 'src/main/resources/scripts/db.changelog-01.sql'

O arquivo SQL criará a tabela de usuários e cinco registros que usaremos posteriormente.

Vale ressaltar a estrutura do arquivo de configuração do Liquibase, a primeira informa a linguagem do arquivo, no caso SQL (o Liquibase também suporta arquivos YAML, XML e JSON) e os changesets que são blocos de execução para o Liquibase, informando qual usuário criou o changeset e qual o ID dessa execução.

Como no mesmo arquivo SQL é possível criar diversos changesets é interessante colocar o ID como 01.01 para o primeiro changeset e os outros dois dígitos serem incrementais a cada changeset criado, como no exemplo abaixo que temos dois blocos, ou seja, 01.01 e 01.02.

Vejam as configurações na Listagem 9.

Listagem 9. Arquivo db.changelog-01.sql com a criação da tabela usuários e inserção de registros

--liquibase formatted sql
--changeset fabio.barbosa:01.01
CREATE TABLE user
(
  id int NOT NULL AUTO_INCREMENT,
  name varchar(255),
  PRIMARY KEY (id)
);
--rollback drop table user

--changeset fabio.barbosa:01.02
INSERT INTO user (name) VALUES ('Usuário 1');
INSERT INTO user (name) VALUES ('Usuário 2');
INSERT INTO user (name) VALUES ('Usuário 3');
INSERT INTO user (name) VALUES ('Usuário 4');
INSERT INTO user (name) VALUES ('Usuário 5');
--rollback delete from user;

Configurando Aplicação para Acesso ao Banco de Dados

Mapeando a Tabela User

Após a criação da tabela no banco de dados é necessário criar a representação da tabela em um objeto Java, para isso usaremos as anotações do JPA.

Vejam as configurações na Listagem 10.

Listagem 10. Classe User.java

package com.wordpress.fabiohbarbosa.entity;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "USER")
public class User implements Serializable {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  private String name;
  public User() {
  }
  public User(Long id, String name) {
    this.id = id;
    this.name = name;
  }
  public Long getId() {
    return id;
  }
  public void setId(Long id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

Configurando o Repository com Spring Data

Com o mapeamento da tabela User agora é necessário configurar a nossa camada de dados, o repositório, que será responsável pelo acesso ao banco de dados. A interface UserRepository.java deve estender a interface JpaRepository.java do Spring que já trás diversos métodos implementados para auxiliar na comunicação com o banco de dados. No generics da interface estendida informamos qual classe representa nosso modelo de dados e qual o tipo do ID, como mapeamos o ID do nosso User.java como Long devemos informar Long.
Efetuaremos testes integrados nessa camada posteriormente.

Vejam as configurações na Listagem 11.

Listagem 11. Interface UserRepository.java

package com.wordpress.fabiohbarbosa.repository;
import com.wordpress.fabiohbarbosa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}

Configurando o Spring JPA

Com a facilidade que o Spring Boot nos deu já configurando todo o Spring Data JPA agora só precisamos informar os dados de acesso ao banco de dados, simples assim. O Spring Boot espera configurações no arquivo application.properties ou application.yaml no classpath da aplicação. Vamos criar o arquivo application.yaml no classpath da nossa aplicação, no exemplo criaremos no caminho /src/main/resources/application.yaml.

Vejam as configurações na Listagem 12.

Listagem 12. Configurações do Spring Data JPA no arquivo application.yaml

spring:
  application.name: CI

  datasource:
    type: mysql
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ci
    username: root
    password: admin

  jpa:
    show-sql: true

No próximo tópico iremos configurar as camadas Service e Controller.

Você também pode visualizar o repositório no github.

Anúncios
Marcado com: , , , , , , , , , , , , , , , , , , , , , , , , ,
Publicado em Desenvolvimento de Software, DevOps, Git, Integração Contínua, Java, Selenium

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: