Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java...

20
Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO - UFJF

Transcript of Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java...

Page 1: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em JavaDesenvolvimento de Aplicações Web

PROFA. MSC. CINTIA CARVALHO OLIVEIRA

DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU

MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU

BACHAREL EM CIÊNCIA DA COMPUTAÇÃO - UFJF

Page 2: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Acesso ao Banco de Dados Diferentes bancos de dados possuem diferentes formas de se comunicar com uma aplicação.

Isso causa um problema na codificações e manutenção, pois caso precise trabalhar um novo banco de dados o código deverá ser refeito.

A aplicação fica inflexível.

Aplicação

Oracle SQL Server MySQL

Page 3: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

A conexão em java Para evitar que cada banco tenha a sua própria API e conjunto de classes e métodos, temos um conjunto de interfaces muito bem definidas que fica dentro de java.sql chamada JDBC – Java DataBase Connectivity.

3

Page 4: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

JDBC A API JDBC uniformiza o acesso ao banco de dados, dando maior flexibilidade aos sistemas.

JDBC

Oracle SQL Server MySQL

Aplicação

Page 5: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

A conexão Java Temos a interface Connection que define métodos para executar uma query (como um insert e select), comitar transações, fechar a conexão entre outros.

Para trabalhar com o MySQL, por exemplo, precisamos de classes concretas que implementem essas interfaces do pacote java.sql. Essas classes são a ponte entre o código que usa a API JDBC e o banco de dados.

Esse conjunto de classes recebe o nome de driver. 5

Page 6: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

A conexão JavaPara abrir uma conexão sempre precisamos de um driver. A classe DriverManager é responsável por se comunicar com todos os drivers que você disponibilizou, utilizando o método estático getConnection.

A String de conexão é da seguinte forma:

jdbc:mysql://ip/nome_do_banco

6

Page 7: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Arquitetura da JDBCAplicação Java

API JDBC

JDBC DRIVER MANAGER

DRIVERJDBC

DRIVERJDBC

MySQL Oracle

Page 8: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Arquitetura da JDBC As principais classes e interfaces do pacote java.sql são:

◦ DriverManager – gerencia os drivers e cria uma conexão com o banco◦ Connection – é a classe que representa a conexão com o banco de dados.◦ Statement – controla e executa uma instrução SQL◦ PreparedStatement – controla e executa uma instrução SQL. Mais segura.◦ ResultSet – contém o conjunto de dados retornado por uma consulta SQL

O DriverManager com base em qual driver chamar usa o getConnection para criar uma conexão.A interface Connection cria um PreparedStatement, faz commit, rollback, etc;

Page 9: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Executando ocorre uma exception. A conexão não pode ser aberta. Precisamos adicionar uma implementação de driver JDBC. E criar um BD chamado estoque.

Adicionar um driver do MySQL ao classpath, o arquivo jar contendo a implementação JDBC do MySQL (mysql connector). 9

Page 10: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Algumas exceptions JDBC ClassNotFoundException (Erro de classe não encontrada)

◦ falta do driver no projeto

SQLException – No suitable driver found for (erro do nome do driver)◦ A URL de conexão foi construída errada

Page 11: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Fábrica de Conexões

Para controlar um processo muito repetitivo e trabalho, fazemos uma fábrica de conexões, que é um Desing Pattern chamado de Factory.

Os programadores para adquirir uma conexão deverão executar:

Connection com = new ConnectionFactory().getConnection();11

Page 12: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Projeto Crie um novo projeto chamado Estoque.

Copie o driver do MySQL para a biblioteca do seu projeto.

Crie uma tabela no BD Estoque chamada Produto:

12

Page 13: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Javabeans◦ Javabeans são classes que possuem construtor sem argumentos e métodos

de acesso get e set.

◦ EJBs costumam ser javabeans com características mais avançadas.

◦ Classe javabean equivalente ao modelo de entidade do banco de dados.

13

Page 14: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

14

Page 15: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

DAO – Data Access Object A ideia é remover o código de acesso ao banco de dados das classes lógicas e colocá-lo em uma classe responsável pelo acesso aos dados.

Assim o código fica em um lugar só, tornando mais fácil a manutenção.

Geralmente possui as operações CRUD◦ Create◦ Read◦ Update◦ Delete 15

Page 16: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

ProdutoDAO

16

Page 17: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Método de cadastrar

17

Page 18: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Testar cadastro

18

Page 19: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Exercício Crie um método de alteração dentro da classe ProdutoDAO em seguida teste o método através da classe TestarAltera.

19

Page 20: Configuração do Ambiente de programação. Manipulação de BD em Java, CRUD em Java Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA.

Leituras Banco de Dados e JDBC

◦ http://www.caelum.com.br/apostila-java-web/bancos-de-dados-e-jdbc/

Livro: Programação Java para a WebCapítulo 3. Introdução a Hibernate e SQL com Java

Páginas 107 a 119