Upload
internet
View
120
Download
0
Embed Size (px)
Citation preview
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
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
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
JDBC A API JDBC uniformiza o acesso ao banco de dados, dando maior flexibilidade aos sistemas.
JDBC
Oracle SQL Server MySQL
Aplicação
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
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
Arquitetura da JDBCAplicação Java
API JDBC
JDBC DRIVER MANAGER
DRIVERJDBC
DRIVERJDBC
MySQL Oracle
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;
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
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
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
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
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
14
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
ProdutoDAO
16
Método de cadastrar
17
Testar cadastro
18
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
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