b anco de d ados e jdbc profa. msc. cintia carvalho oliveira mestre em ciência da computação –...

19
BANCO DE DADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

Upload: internet

Post on 17-Apr-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

1

BANCO DE DADOS E JDBCProfa. Msc. Cintia Carvalho OliveiraMestre em Ciência da Computação – UFU

Bacharel em Ciência da Computação - UFJF

Page 2: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

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.

2

Page 3: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

3

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.

Page 4: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

4

A CONEXÃO JAVA

Para 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

Page 5: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

5

Executando ocorre uma exception. A conexão não pode ser aberta.

Precisamos adicionar uma implementação de driver JDBC.

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

Page 6: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

6

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();

Page 7: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

7

PROJETO

Crie um novo projeto chamado Agenda. Copie o driver do MySQL para a biblioteca do

seu projeto.

Crie a tabela abaixo: contato

id int(10) primary e auto-incremento nome varchar(50) email varchar(30) endereco varchar(100) dataNascimento varchar(10)

Page 8: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

8

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.

Page 9: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

9

JAVABEAN Classe javabean equivalente ao modelo de

entidade do banco de dados.

Page 10: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

10

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

Page 11: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

11

CONTATODAO

Page 12: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

12

MÉTODO DE CADASTRAR

Page 13: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

13

TESTAR CADASTRO

Page 14: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

14

LISTAR DADOS DE CONTATO

Page 15: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

15

TESTAR A LISTA

Page 16: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

16

EXERCÍCIO

Faça um método para localizar registros de acordo a coluna de pesquisa.

Exemplo:

Se o usuário quiser pesquisar pelo id do contato na agenda, você deverá colocar na cláusula SQL:

where id = 10

Page 17: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

17

ALTERAR CONTATO

Page 18: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

18

EXCLUIR CONTATO

Page 19: B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1

19

EXERCÍCIOS

Crie uma tabela e javabean Funcionário com os campos id, nome, usuario e senha.

Crie uma classe DAO para Funcionario. Crie uma classe de teste de funcionário, use-

a para instanciar novos funcionários e colocá-los no banco de dados.