Академический Документы
Профессиональный Документы
Культура Документы
Globalcode open4education
Instrutor
Globalcode open4education
Apresentao da agenda
3
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
Agenda
4
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
O que persistncia?
Capacidade de gravarmos dados em memrias no volteis
hard-disk, tape-backup, CD, DVD, etc.
Necessidade bsica, 99% dos softwares corporativos necessitam; Quanto mais culpados queremos encontrar, mais dados armazenamos;
5 Globalcode open4education
Globalcode open4education
Agenda
8
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
Design Pattern
Design pattern
Soluo para um problema recorrente Definido em funo de:
Um problema, uma soluo, exemplos de aplicaes prticas da soluo, exemplo de implementao em alguma linguagem...
Globalcode open4education
Design Pattern
DAO Data Access Object
Centraliza o servio de persistncia de objetos em um pequeno conjunto de classes, evitando que cdigo SQL se espalhe por muitas classes do sistema
10
Globalcode open4education
Design Pattern
Anti-pattern
Proposta do DAO
11
Globalcode open4education
Agenda
12
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
JDBC
JDBC Java Database Conectivity
API Java com interfaces para acesso e manipulao de bancos de dados que suportam SQL Torna transparente a utilizao de diferentes bancos de dados
13
Globalcode open4education
JDBC
Existe desde o Java 1.1 Suporta Comandos SQL Procedures Metadados A 1 API de muitos programadores Java
14 Globalcode open4education
Agenda
15
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
Driver
16
Globalcode open4education
Driver
Download
http://developers.sun.com/product/jdbc/drivers
Configurao do classpath
java cp c:\java\jars\mysql_jdbc.jar Produto
17
Globalcode open4education
Driver
Aplicao Java API JDBC (java.sql) driver tipo 1 driver tipo 2 driver tipo 3 driver tipo 4
RDBMS
18
Globalcode open4education
Agenda
19
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
O pacote java.sql
Principais classes e interfaces do pacote java.sql
20
Globalcode open4education
java.sql.Driver
Interface que define mtodos para conexo com o banco de dados O provedor do SGBD(Sistema Gerenciador de Banco de Dados) faz uma implementao desta interface, criando uma classe que representa o driver JDBC
21
Globalcode open4education
java.sql.DriverManager
Classe que gerencia mltiplas implementaes da interface Driver O driver carregado usando
Class.forName(nome-driver)
22
Globalcode open4education
java.sql.Connection
Interface para a criao de objetos que representam as instrues para o banco de dados (Statements) Controle de transao Liberao de recursos
23
Globalcode open4education
24
Globalcode open4education
25
Globalcode open4education
Agenda
26
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
java.sql.Statement
Interface para o envio de comandos SQL ao banco de dados Statements so fabricados por meio da chamada a mtodos da interface Connection
27
Globalcode open4education
28
Globalcode open4education
Continua
29 Globalcode open4education
Usando o dao
30
Agenda
31
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
java.sql.ResultSet
Interface que oferece mtodos para recuperar resultados de comandos SQL executados sobre o banco de dados Navegao nos resultados
32
Globalcode open4education
... public class ProdutoDAO { public Produto getProduto(int id) throws GlobalcodeException { String sql = "SELECT * FROM produtos WHERE id = " + id; Connection conn = null; Statement stmt = null; ResultSet rs = null; Produto produto = null; try { conn = ConnectionManager.getConexao(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql);
Continua
33 Globalcode open4education
if (rs.next()) { String nome = rs.getString("nome"); int preco = rs.getInt("preco"); produto = new Produto(id, nome, preco); } return produto; } catch (SQLException e) { throw new GlobalcodeException("Erro no select.,e); } finally { ConnectionManager.close(conn, stmt, rs); } } }
34
Globalcode open4education
Agenda
35
Introduo Design Pattern A API JDBC Driver Connection Statement ResultSet Concluso
Globalcode open4education
Boas prticas
Utilize o design pattern DAO Utilize arquivos properties para armazenar o cdigo SQL DAO tende a ficar grande, e se necessrio combine outros patterns para evitar cdigo extenso
36
Globalcode open4education
Frameworks de persistncia
objetos
Framework de persistncia
statements
JDBC
RDBMS
resultsets
objetos
37
Globalcode open4education
Frameworks de persistncia
Alguns Sabores de ORM em Java
Hibernate iBatis Java Persistence API JPA (JSR 220/317) Java Data Objects - JDO (JSR 243)
abstraes para diversos tipos de repositrios, alm do modelo JDBC / banco relacional
38
Globalcode open4education
Frameworks de persistncia
Mais detalhes em outros mini-cursos MC26, MC31 Globalcode http://www.globalcode.com.br/index.jsp?pa gina=MiniCursos
39
Globalcode open4education
Perguntas e respostas
40
Globalcode open4education