configuração do ambiente de programação. manipulação de bd em java, crud em java...
TRANSCRIPT
![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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062300/552fc166497959413d8eaabc/html5/thumbnails/20.jpg)
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