DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.



Documentos relacionados
DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

Programação Orientada a Objetos JDBC Java Database Connectivity

Integrando Java com Banco de Dados

Banco de Dados. Banco de Dados. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Acesso a Bancos de Dados em Java (JDBC)

Java e Conexão com Banco de Dados

JAVA JDBC COMO FUNCIONA. Programação Orientada a Objetos Flávio de Oliveira Silva 315. Programação Orientada a Objetos Flávio de Oliveira Silva 316

JAVA JDBC Java Database Connectivity

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

Programação com Acesso a Banco de Dados

Aula 1 Acesso a Banco de Dados

Desenvolvimento de Sistemas de Informação

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

(UFF) JDBC (I) TEPIS II

Curso de Java. Acesso a banco de dados através de JDBC. Todos os direitos reservados Klais

Manipulação de Banco de Dados com Java 1. Objetivos

JAVA 14 ODBC / JDBC Aceder a Bases de Dados através da Internet. Vitor Vaz da Silva

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

JDBC - Java Data Base Connectivity

Acesso a banco de dados

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

JDBC Acessando Banco de Dados

JDBC. Prof. Márcio Bueno

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.

JDBC. Java DataBase Connectivity

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

JPA: Persistência padronizada em Java

Java Básico JDBC. Razer Anthom Nizer Rojas Montaño Banco de Dados: JDBC

Conectividade de Banco de Dados Java JDBC

Especialização em web com interfaces ricas

Desenvolvimento Web TCC Turma A-1

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Acesso a Bancos de Dados (JDBC) Desenvolvimento de Aplicações em Java O QUE É JDBC JAVA E JDBC CARACTERÍSTICAS DE JDBC

Programação Orientada a Objetos (DPADF 0063)

Programação com Acesso a BD. Programação com OO Acesso em Java

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em

Programação em Rede JDBC

Linguagens de Programação

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

JDBC (Fundamentos) Sang Shin Java Technology Architect Sun Microsystems, Inc.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Acessando dados em Java com JDBC

JDBC Java Database Connectivity

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Java JDBC Aplicação Java com Acesso a um SGBD. Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010

Bases de Dados 2007/2008. Aula 9

Java 2 Standard Edition Fundamentos de

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

CONEXÃO JAVA - BANCO DE DADOS

Banco de Dados. Prof. Leonardo Barreto Campos 1

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

JDBC - Java Data Base Connectivity

Orientação a Objetos

MySQL. Transacções em MySQL

Persistência de Classes em Tabelas de Banco de Dados

Tecnologias Java JDBC. Marcio Seiji Oyamada

Leonardo Gresta Paulino Murta

J550 Integração com Bancos de Dados

Java na Web. Aplicações Web

Programação SQL. Introdução

Solutions for Information Technologies. BIS-Navegador. Manual de Instalação para Microsoft SQL Server

Curso: Desenvolvimento Java

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Programação Orientada a Objetos II

Banco de Dados. Banco de Dados

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Java na WEB Banco de Dados

JDBC DRIVER. Objetivo: Possibilitar aplicações não Zim de se conectar a um banco de dados Zim utilizando as normas JDBC.

Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes

Padrões de Projeto e Persistência com DAO

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Curso PHP Aula 08. Bruno Falcão

Prof. Marcelo Heitor Teixeira marceloheitor.com. Java API JDBC

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2007/2008. Aula 8

Acessando bancos de dados com o JDBC

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Como criar um banco de dados usando o mysql

Solutions for Information Technologies. BIS-Navegador. IBM DB2 UDB v8.x

Figura 1. A Classe Java

Aula 4 JDBC - Java Database Connectivity

Tarefa Orientada 6 Edição de Dados

Bases de Dados 2007/2008. Aula 1. Referências

Execução de Instruções SQL

Transcrição:

Universidade do Minho Departamento de Informática Camada de Dados - JDBC Aula 1 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.pt

2 Camada de Dados A camada de dados, data layer, permite isolar o acesso aos dados, por forma a que o resto da aplicação não esteja dependente da origem ou estrutura sob a qual os dados estão armazenados. Presentation Layer Business Logic Data Layer A combinação que aqui será explorada consiste na utilização de bases de dados acedidas na camada de dados através de JDBC.

3 Aplicações Multi-Camada Diversos tipos de objectos para efectuarem diferentes operações Presentation Objects Business Objects Data Objects

4 JDBC JDBC = Java DataBase Connectivity Pacotes: java.sql import java.sql.*; Passos: 1. inicializar o driver 2. estabelecer uma ligação 3.... 4. fechar a ligação

5 JDBC - Driver Passo I: carregar a classe do driver static Class forname(string nome); excepção: ClassNotFoundException Driver ODBC: sun.jdbc.odbc.jdbcodbcdriver try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { } // Driver não disponível

6 Drivers JDBC Existem várias implementações de drivers JDBC para os diversos motores de BD. Type 1: drivers que implementam a API JDBC como um mapeamento para uma outra API. A portabilidade está dependente da existência do driver destino. A ligação a ODBC é um exemplo destes drivers; Type 2: drivers que são escritos parcialmente em Java e numa outra linguagem. É utilizado um cliente específico para o acesso à base de dados pretendida; Type 3: drivers escritos em Java e que comunicam com um servidor de middleware que faz o interface com as fontes de dados; Type 4: drivers em que o cliente liga directamente à base de dados utilizando exclusivamente Java.

7 JDBC - Ligação Passo II: Estabelecer uma ligação Classe DriverManager disponibiliza os seguintes métodos de classe: Connection getconnection( String url); Connection getconnection( String url, String login, String pass); Connection getconnection( String url, java.util.properties.info); excepção: SQLException Connection é uma interface que define um conjunto de métodos para operar com a base de dados.

8 JDBC - Ligação Passo II: Estabelecer uma ligação (2) Parâmetro url => protocolo:subprotocolo:identificador protocolo: é constante e representado pela string "jdbc" subprotocolo: é função do motor da base de dados e da forma de acesso (directa ou indirecta, por exemplo através de ODBC). No caso de acesso através de ODBC o subprotocolo é "odbc". identificador da base de dados: Indica qual a base de dados a utilizar. No caso da ligação ODBC-JDBC é o identificador definido em Data Source Name.

9 JDBC - Ligação Passo II: Estabelecer uma ligação (3) Connection con;... try { con = DriverManager.getConnection("jdbc:odbc:bolsa"); } catch (SQLException e) { } // Erro ao estabelecer a ligação

10 JDBC - Libertar Recursos Passo IV: terminar a ligação Interface Connection void close(); boolean isclosed(); excepção: SQLException try { con.close(); } catch (SQLException e) { } // Erro ao terminar a ligação

11 JDBC - Comandos SQL Tipos de comandos SQL DDL: Data Definition Language CREATE TABLE idfunc ( cod VARCHAR(10) NOT NULL, nome VARCHAR(50), primary key(cod)) Selecção Actualização SELECT * FROM cotações UPDATE clientes SET numerário = 100000 WHERE nome = João

12 JDBC - Comandos SQL Primeiro passo: criar um statement Interface Connection Statement createstatement(); excepção: SQLException Interface Statement ResultSet executequery(string sql); int executeupdate(string sql); excepção: SQLException

13 JDBC - SELECT Exemplo para comandos de selecção Connection con;... // iniciar a ligação Statement st; ResultSet res; String sql; sql = "SELECT nome FROM clientes WHERE numerário > 100000"; try { st = con.createstatement(); res = st.executequery(sql); } catch (SQLException e) { // lidar com as excepções }

14 JDBC - Actualização e DDL int executeupdate(string sql); Se for um comando de actualização (UPDATE, INSERT ou DELETE) devolve o número de registos afectados Comandos DDL (ex: CREATE TABLE) devolve 0 Statement st; try { st = con.createstatement(); int count = st.executeupdate("update..."); } catch (SQLException e) { // lidar com as excepções }

15 JDBC - Result Set Acesso aos resultados armazenados num ResultSet Interface ResultSet funciona como iterador sobre os registos devolvidos boolean next(); dentro de um registo fornece um conjunto de métodos para aceder aos campos, por exemplo: getstring(int índicedocampo); getstring(string nomedocampo); Um ResultSet está disponível até ser fechado ou até o statement ser reutilizado ou fechado

16 JDBC - Result Set exemplo de acesso a um ResultSet Statement st; ResultSet rs; try { rs = st.executequery("select saldo FROM contas"); int total = 0; while (rs.next()) total += rs.getint ("saldo"); // nunca fazer isto em casa!!! System.out.println("Soma :" + total"); } catch (SQLException e) { // lidar com as excepções }

17 JDBC - Exercício Crie uma base de dados em Access com uma tabela "clientes" com os seguintes campos: cod (chave), saldo e nome. Preencha a tabela com alguns valores; Registe a base de dados no ODBC; Escreva um programa em java para inserir um registo na tabela e em seguida calcular o total dos saldos (iterando o ResultSet).

18 Apêndice - Dummy's Guide to JDBC-ODBC e Access Para registar uma base de dados no ODBC realizar os seguintes passos: 1. Abrir "Data Sources (ODBC)". ControlPanel -> Administrative Tools; 2. Seleccionar "Add" e escolher "Driver do Microsoft Access"; 3. Preencher "Data Source Name" (este vai ser o nome pela qual a base de dados é conhecida numa aplicação java com JDBC-ODBC; 4. Pressionar "Select..." para indicar o nome do ficheiro da base de dados; 5. "OK"!