Skip to content

Commit

Permalink
GitBook: [master] 35 pages and one asset modified
Browse files Browse the repository at this point in the history
  • Loading branch information
yrachid authored and gitbook-bot committed Feb 28, 2019
1 parent d9c4bbc commit d73e735
Show file tree
Hide file tree
Showing 25 changed files with 674 additions and 760 deletions.
Binary file added capitulos/.gitbook/assets/imagem-linux-01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 17 additions & 15 deletions capitulos/hibernate.md → capitulos/banco-de-dados/hibernate.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
layout: post
title: "Hibernate"
date: 2014-07-22 16:25:06 -0700
title: Hibernate
date: '2014-07-22 16:25:06 -0700'
categories: Hibernate
---

# Hibernate

**O que é?**

O Hibernate é um framework utilizado para mapear as classes java que são suas entidades de negócio para tabelas no banco relacional, economizando tempo.
Expand All @@ -13,7 +15,7 @@ O Hibernate é um framework utilizado para mapear as classes java que são suas

Vamos usar o JPA com Hibernate, ou seja, precisamos baixar os JARs no site do Hibernate. O site oficial do Hibernate é o www.hibernate.org, onde você baixa a última versão na seção ORM e Download.

Com o ZIP baixado em mãos, vamos descompactar o arquivo. Dessa pasta vamos usar todos os JARs obrigatórios (required). Não podemos esquecer o JAR da especificação JPA que se encontra na pasta jpa.
Com o ZIP baixado em mãos, vamos descompactar o arquivo. Dessa pasta vamos usar todos os JARs obrigatórios \(required\). Não podemos esquecer o JAR da especificação JPA que se encontra na pasta jpa.

Para usar o Hibernate e JPA no seu projeto é necessário colocar todos esses JARs no classpath.

Expand All @@ -23,7 +25,6 @@ O Hibernate vai gerar o código SQL para qualquer banco de dados. Continuaremos

Para isso, continuaremos utilizando a classe que representa uma tarefa:


```java
package br.com.caelum.tarefas.modelo;

Expand All @@ -34,6 +35,7 @@ public class Tarefa {
private Calendar dataFinalizacao;
}
```

Criamos os getters e setters para manipular o objeto, mas fique atento que só devemos usar esses métodos se realmente houver necessidade.

Essa é uma classe como qualquer outra que aprendemos a escrever em Java. Precisamos configurar o Hibernate para que ele saiba da existência dessa classe e, desta forma, saiba que deve inserir uma linha na tabela Tarefa toda vez que for requisitado que um objeto desse tipo seja salvo. Em vez de usarmos o termo "configurar", falamos em mapear uma classe a tabela.
Expand All @@ -59,15 +61,15 @@ public class Tarefa {
}
```

`@Entity` indica que objetos dessa classe se tornem "persistivel" no banco de dados.
`@Entity` indica que objetos dessa classe se tornem "persistivel" no banco de dados.

`@Id` indica que o atributo id é nossa chave primária (você precisa ter uma chave primária em toda entidade) e @GeneratedValue diz que queremos que esta chave seja populada pelo banco (isto é, que seja usado um auto increment ou sequence, dependendo do banco de dados).
`@Id` indica que o atributo id é nossa chave primária \(você precisa ter uma chave primária em toda entidade\) e @GeneratedValue diz que queremos que esta chave seja populada pelo banco \(isto é, que seja usado um auto increment ou sequence, dependendo do banco de dados\).

Com `@Temporal` configuramos como mapear um Calendar para o banco, aqui usamos apenas a data (sem hora), mas poderíamos ter usado apenas a hora (TemporalType.TIME) ou timestamp (TemporalType.TIMESTAMP). Essas anotações precisam dos devidos imports, e pertencem ao pacote javax.persistence.
Com `@Temporal` configuramos como mapear um Calendar para o banco, aqui usamos apenas a data \(sem hora\), mas poderíamos ter usado apenas a hora \(TemporalType.TIME\) ou timestamp \(TemporalType.TIMESTAMP\). Essas anotações precisam dos devidos imports, e pertencem ao pacote javax.persistence.

Mas em que tabela essa classe será gravada? Em quais colunas? Que tipo de coluna? Na ausência de configurações mais específicas, o Hibernate vai usar convenções: a classe Tarefa será gravada na tabela de nome também Tarefa, e o atributo descricao em uma coluna de nome descricao também!

Se quisermos configurações diferentes das convenções, basta usarmos outras anotações, que são completamente opcionais. Por exemplo, para mapear o atributo dataFinalizacao numa coluna chamada data_finalizado faríamos:
Se quisermos configurações diferentes das convenções, basta usarmos outras anotações, que são completamente opcionais. Por exemplo, para mapear o atributo dataFinalizacao numa coluna chamada data\_finalizado faríamos:

```java
@Column (name = "data_finalizado", nullable = true)
Expand All @@ -79,16 +81,16 @@ Para usar uma tabela com o nome tarefas:
```java
@Entity
@Table (name="tarefas")
public class Tarefa
public class Tarefa
```
# EXERCÍCIOS DE FIXAÇÃO
##Primeiros passos para mapear uma tabela simples com hibernate


Imagine que temos o hibernate configurado, o próximo passo é realizar o mapeamento das classes ás tabelas do banco de dados.
## EXERCÍCIOS DE FIXAÇÃO

1. Qual é a anotação que usaremos para indicar que a classe será utilizada como uma entidade, ou seja, que os dados serão "persistiveis" pelo banco de dados?
### Primeiros passos para mapear uma tabela simples com hibernate

Imagine que temos o hibernate configurado, o próximo passo é realizar o mapeamento das classes ás tabelas do banco de dados.

1. Qual é a anotação que usaremos para indicar que a classe será utilizada como uma entidade, ou seja, que os dados serão "persistiveis" pelo banco de dados?
2. Qual anotação é utilizada para indicar o identificador único da tabela?
3. Qual a notação que informa que queremos que esta chave seja populada pelo banco?

3. Qual a notação que informa que queremos que esta chave seja populada pelo banco?
2 changes: 2 additions & 0 deletions capitulos/banco-de-dados/migracoes-de-banco-de-dados.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Entendendo migrações de banco de dados

45 changes: 26 additions & 19 deletions capitulos/postgresql.md → capitulos/banco-de-dados/postgresql.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,83 @@
---
title: "Banco de Dados"
date: 2013-06-22 16:25:06 -0700
title: Banco de Dados
date: '2013-06-22 16:25:06 -0700'
---

# Começando com o PostgreSQL

São um conjunto de arquivos relacionados entre si com registros sobre pessoas, lugares ou coisas, são coleções organizadas de dados. Sempre que for possível agrupar informações que se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados.

Já um sistema de gerenciamento de banco de dados (SGBD) é um software que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário. Um exemplo de SGBD é:
Já um sistema de gerenciamento de banco de dados \(SGBD\) é um software que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário. Um exemplo de SGBD é:

![ImagemPostgreSQL](https://lh4.googleusercontent.com/ZthMHOYo9r5QnYduoOBsdzGoUhQ69PieuabvgA27bd8lBuI4QMi2-uY66wWxxELL1kXti140zD0ZEmlVKmonMHc8fScH3QoqGfkefveKvwprj49otRV8OOr_RBfkXSPZ6E0CkVjJ)É um Sistema Gerenciador de Bancos de dados Relacional estendido e de código aberto(SGBDR- o R é porque ele é relacional). Existem vários Modelos de Base de Dados, alguns exemplos são: Modelo em Rede, Modelo Hierárquico, Modelo Relacional,Orientado a Objetos.
![ImagemPostgreSQL](https://lh4.googleusercontent.com/ZthMHOYo9r5QnYduoOBsdzGoUhQ69PieuabvgA27bd8lBuI4QMi2-uY66wWxxELL1kXti140zD0ZEmlVKmonMHc8fScH3QoqGfkefveKvwprj49otRV8OOr_RBfkXSPZ6E0CkVjJ)É um Sistema Gerenciador de Bancos de dados Relacional estendido e de código aberto\(SGBDR- o R é porque ele é relacional\). Existem vários Modelos de Base de Dados, alguns exemplos são: Modelo em Rede, Modelo Hierárquico, Modelo Relacional,Orientado a Objetos.

Para criar a base de dados o SGBD utiliza uma linguagem. A mais utilizada atualmente é o SQL, (Structured Query Language). Para armazenar um dado em um banco de dados, é necessário criar tabelas e dentro delas são criadas colunas, onde as informações são armazenadas.
Para criar a base de dados o SGBD utiliza uma linguagem. A mais utilizada atualmente é o SQL, \(Structured Query Language\). Para armazenar um dado em um banco de dados, é necessário criar tabelas e dentro delas são criadas colunas, onde as informações são armazenadas.

**sudo apt-get udpdate** - Geralmente quando vamos instalar algum programa via terminal, precisamos digitar sudo apt-get update.

**sudo apt-get install postgresql postgresql-contrib** - Esse comando instala o pacote Postgres junto com um -contribpacote que adicione alguns utilitários e funcionalidades adicionais.
**sudo apt-get install postgresql postgresql-contrib** - Esse comando instala o pacote Postgres junto com um -contribpacote que adicione alguns utilitários e funcionalidades adicionais.

**sudo -i -u postgres** - Alternando para a conta postgres.

**Comandos SQL(utilizando PostgreSQL)**
**Comandos SQL\(utilizando PostgreSQL\)**

**psql** - Acessando um prompt do Postgres

Isso fará você entrar no prompt do PostgreSQL e, a partir daqui, você estará livre para interagir com o sistema de gerenciamento de banco de dados imediatamente.

**\q** - Saia do prompt do PostgreSQL digitando esse comando.


```sql
CREATE TABLE pessoa (
id serial primary key,
nome varchar(255));
```
O comando CREATE TABLE cria uma tabela, pessoa é um exemplo de nome para sua tabela e dentro dos () vai as suas colunas, como exemplos temos id e nome.

O comando CREATE TABLE cria uma tabela, pessoa é um exemplo de nome para sua tabela e dentro dos \(\) vai as suas colunas, como exemplos temos id e nome.

```sql
INSERT INTO TABLE pessoa VALUES (1,”Ingrid”);
```

O comando INSERT INTO TABLE insere na tabela pessoa respectivamente os seguintes valores: id=1 e nome=Ingrid.

```sql
SELECT * FROM pessoa;
```

Seleciona toda a tabela pessoa.

```sql
UPDATE pessoa SET nome = ‘Brenda’ WHERE id = 1;
UPDATE pessoa SET nome = ‘Brenda’ WHERE id = 1;
```

Atualiza o nome do cliente para Brenda se o Id for igual a 1

```sql
DELETE FROM pessoa WHERE id = 1;
```

Exclui as linhas onde o id é igual a 1 na tabela especificada. Se o id não for especificado, o efeito é excluir todas as linhas da tabela.

# EXERCÍCIOS DE FIXAÇÃO
## EXERCÍCIOS DE FIXAÇÃO

**Baixe o postgreSQL**
**Baixe o postgreSQL**

Comandos para Linux:
Comandos para Linux:

sudo apt-get update

sudo apt-get install postgresql postgresql-contrib

sudo -i -u postgres
sudo -i -u postgres

psql
psql

\q
\q

**FERRAMENTAS ADICIONAIS**

*PGADMIN 3*
_PGADMIN 3_

Para uma interface gráfica de usuário do PostgreSQL, use o seguinte comando:

Expand All @@ -81,8 +87,8 @@ Para uma interface gráfica de usuário do PostgreSQL, use o seguinte comando:

**ALTER USER postgres WITH PASSWORD 'postgres';**

###Execute os seguintes comandos
### Execute os seguintes comandos

```sql
CREATE TABLE cliente(id_cliente INTEGER, nome_cliente VARCHAR (255), CONSTRAINT pk_id_cliente PRIMARY KEY (id_cliente));

Expand Down Expand Up @@ -124,3 +130,4 @@ SELECT * FROM cliente;

DELETE FROM cliente WHERE id_cliente = 8275;
```

38 changes: 0 additions & 38 deletions capitulos/circle-ci.md

This file was deleted.

123 changes: 0 additions & 123 deletions capitulos/comandos-basicos-git.md

This file was deleted.

Loading

0 comments on commit d73e735

Please sign in to comment.