Java Básico JDBC. Razer Anthom Nizer Rojas Montaño (razer@razer.org) 2008. Banco de Dados: JDBC



Documentos relacionados
Java e Conexão com Banco de Dados

Acesso a Bancos de Dados em Java (JDBC)

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

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

JDBC Acessando Banco de Dados

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

Programação Orientada a Objetos JDBC Java Database Connectivity

Acessando dados em Java com JDBC

Integrando Java com Banco de Dados

Programação com Acesso a Banco de Dados

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

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

Conectividade de Banco de Dados Java JDBC

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

JDBC. Java DataBase Connectivity

Aula 1 Acesso a Banco de Dados

JAVA JDBC Java Database Connectivity

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.

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

Programação Orientada a Objetos (DPADF 0063)

Desenvolvimento Web TCC Turma A-1

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

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

Leonardo Gresta Paulino Murta

Aula 4 JDBC - Java Database Connectivity

JDBC. Prof. Márcio Bueno

Desenvolvimento de Sistemas de Informação

Acesso a banco de dados

Java 2 Standard Edition Fundamentos de

(UFF) JDBC (II) TEPIS II

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

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

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

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

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

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

JavaServer Faces JSF

JDBC Java Database Connectivity

No cabeçalho de cada arquivo Java onde haverá acesso a banco de dados, o seguinte Import deve ser colocado:

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

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

Java na WEB Banco de Dados

CONEXÃO JAVA - BANCO DE DADOS

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

Acessando bancos de dados com o JDBC

UFG - Instituto de Informática

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

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

Linguagens de Programação

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

Java na Web. Aplicações Web

Persistência de Classes em Tabelas de Banco de Dados

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

(UFF) JDBC (I) TEPIS II

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

Curso de Java Módulo III JDBC Fábio Mengue Centro de Computação - Unicamp

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

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

Figura 1. A Classe Java

JDBC JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL

Execução de Instruções SQL

Curso: Desenvolvimento Java

Banco de Dados. Prof. Leonardo Barreto Campos 1

Introdução à Tecnologia Java 02/2012. Java Aula 05 12/09/2012. Celso Olivete Júnior.

Padrões de Projeto e Persistência com DAO

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

JDBC - Java Data Base Connectivity

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans efetuando um micro projeto swing.

Programação em Rede JDBC

Desenvolvimento de Aplicaçõ. ções em Java

Tecnologias Java JDBC. Marcio Seiji Oyamada

Comandos de Manipulação

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

PHP INTEGRAÇÃO COM MYSQL PARTE 2

JPA: Persistência padronizada em Java

Controle de transações em SQL

Especialização em web com interfaces ricas

Programação Orientada a Objetos II

Desenvolvimento de Aplicações para Internet Aula 9

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Orientação a Objetos

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

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

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Curso PHP Aula 08. Bruno Falcão

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Android e Bancos de Dados

Introdução ao SQL. Aécio Costa

EXERCÍCIOS PRÁTICOS. Banco de Dados

Capítulo 35. Sistemas de Banco de Dados. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Bases de Dados 2007/2008. Aula 9

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC


Transcrição:

Java Básico JDBC Razer Anthom Nizer Rojas Montaño (razer@razer.org) 2008 Banco de Dados: JDBC API de acesso a banco de dados Pacote java.sql.* Precisa-se de um driver de acesso. Ex para oracle: oracle.jdbc.driver.oracledriver Existe uma ponte JDBC-ODBC: sun.jdbc.odbc.jdbcodbcdriver Acessa uma DSN provida pelo ODBC da Microsoft Java Básico 2 1

JDBC Java Básico 3 JDBC Java Básico 4 2

Bancos de Dados Relacionais Dados são armazenados baseados em tabelas (relações) agencia_nome conta_numero cliente_nome saldo Jardim Social 101 Kafajeste 1049 Passarela 215 Butiá 860 Palácio Avenida 102 Razer 17890 Rua das Flores 305 Churrasqueiro 789 Cristo Rei 217 Ivaru 476 Java Básico 5 Consulta e Manutenção - SQL Comandos para: Criar tabela Alterar tabela Inserir registros Remover registros Alterar registros Buscar registros etc Java Básico 6 3

Inserção Comando INSERT insert into tb_agencia ( agencia_nome, conta_numero, cliente_nome, saldo) values ( Agencia da Sun, 333, Sun, 100000.0) Java Básico 7 Armazenamento do Comando Tudo em uma string só: String str = insert into tb_agencia (agencia_nome, conta_numero, cliente_nome, saldo) values ( Agencia da Sun, 333, Sun, 100000.0) ; Java Básico 8 4

Usando Variáveis Tudo em uma string só: String str = insert into tb_agencia (agencia_nome, conta_numero, cliente_nome, saldo) values ( Agencia da Sun, 333, Sun, 100000.0) ; Variável Java Básico 9 Usando Variáveis String nome = Agencia Sun ; int numero = 333; String nomecliente = Sun ; double saldo = 100000.0; String str = insert into tb_agencia (agencia_nome, conta_numero, cliente_nome, saldo) values ( + nome +, + numero +, + nomecliente +, + saldo + ) ; Java Básico 10 5

Remoção Comando DELETE delete from tb_agencia delete from tb_agencia Where nome_agencia = Agencia da Sun Java Básico 11 Atualização Comando UPDATE update tb_agencia set agencia_nome= Agencia do Razer, conta_numero=777, cliente_nome= Razer, saldo=564 where agencia_nome= Agencia da Sun AND cliente_nome= Sun Java Básico 12 6

Busca Comando SELECT select * from tb_agencia select cliente_nome from tb_agencia where agencia_nome= Agencia da Sun select sum(saldo) from tb_agencia where cliente_nome= Sun Java Básico 13 JDBC: Abrindo Conexões Primeiro registra-se o driver: Class.forName(strDriver); Onde strdriver: "sun.jdbc.odbc.jdbcodbcdriver" Usa-se: Connection con = DriverManager.getConnection( url, user, pwd); Onde: url: "jdbc:odbc:banco_cliente" Sendo que banco_cliente é o DSN no ODBC user: usuário de conexão no banco pwd: senha de conexão do usuário Java Básico 14 7

JDBC: Executando Consultas Usa-se o objeto Statement Statement st = con.createstatement(); ResultSet rs = st.executequery( "select * from tb_cliente"); O ResultSet acima é usado para tratar o resultado da query Para executar alterações: Statement st = con.createstatement(); st.executeupdate( "create table teste (cod int, nome char(50))"); Java Básico 15 JDBC: Recuperando Resultados Para ir ao primeiro registro depois da consulta rs.next() Para recuperar os dados String name = rs.getstring( nome ); int cod = rs.getint( cod ); Pode-se usar também o índice do campo, ao invés do nome (começa pelo 1) String name = rs.getstring(2); int cod = rs.getint(1); Java Básico 16 8

JDBC: Recuperando Resultados Loop clássico de retorno de valores: while (rs.next()) { str = rs.getstring( cliente_nome ); i = rs.getint( cliente_idade );... } Java Básico 17 JDBC: Instruções Preparadas Instruções já conhecidas pelo BD Exemplo: PreparedStatement pstmt = con.preparestatement( insert into teste (cod, nome) values (?,?) ); Os? são parâmetros pstmt.setint(1, 1); pstmt.setstring(2, Allexia ); Para executar pstmt.executeupdate(); Se fosse uma query pstmt.executequery(); Java Básico 18 9

JDBC: Stored Procedures Usa-se: CallableStatement cst = con.preparecall( {call sp_teste(?,? ) } ); cst.setint(1, 1); cst.registeroutparameter(2, java.sql.types.varchar); cst.executeupdate(); System.out.println(cst.getString(2)); Para sp s que retornam resultados: {?= call [,,...]} Sendo que o primeiro? tem número 1 e deve ser registrado como OutParameter Java Básico 19 JDBC: Liberando Recursos rs.close(); st.close(); pstmt.close(); cst.close(); con.close(); Java Básico 20 10

JDBC: Consulta Fluxo Completo // registrar jdbc-odbc Class.forName( sun.jdbc.odbc.jdbcodbcdriver ); // abrir conexão Connection con = DriverManager.getConnection( "jdbc:odbc:banco_cliente", usr, pwd ); // executar query Statement st = con.createstatement(); ResultSet rs = st.executequery( "select * from tb_cliente"); // imprimir resultados while (rs.next()) System.out.println(rs.getString( cliente_nome )); // liberar recursos rs.close(); st.close(); con.close(); Java Básico 21 JDBC: Consulta Fluxo Completo try { // registrar jdbc-odbc Class.forName( sun.jdbc.odbc.jdbcodbcdriver ); // abrir conexão Connection con = DriverManager.getConnection( "jdbc:odbc:banco_cliente", usr, pwd ); // executar query Statement st = con.createstatement(); ResultSet rs = st.executequery( "select * from tb_cliente"); // imprimir resultados while (rs.next()) System.out.println(rs.getString( cliente_nome )); // liberar recursos rs.close(); st.close(); con.close(); } catch(exception e) { } Java Básico 22 11

JDBC: Alteração Fluxo Completo try { // registrar jdbc-odbc Class.forName( sun.jdbc.odbc.jdbcodbcdriver ); // abrir conexão Connection con = DriverManager.getConnection( "jdbc:odbc:banco_cliente", usr, pwd ); // executar query Statement st = con.createstatement(); st.executeupdate( delete from cliente where id>10"); // liberar recursos st.close(); con.close(); } catch(exception e) { } Java Básico 23 JDBC: Transações São controladas via Connection void setautocommit(boolean): Se True, todas as operações serão commitadas assim que executadas void commit(): Aplica commit a todas as operações desde o último commit void rollback(): desfaz todas as operações desde o último commit/rollback Java Básico 24 12

JDBC: Atualizações em Lote Usada nos Statements Deve estar dentro de uma transação Ao invés de executar executeupdate, usa-se addbatch: Statement st = con.createstatement(); String command = CREATE TABLE x (cod int) ; st.addbatch(command); while (true) { // lê numero command = insert into x values ( + numero + ) ; st.addbatch(command); } // retorna qtas linhas foram afetadas por cada comando int[] counts = st.executebatch(); Java Básico 25 JDBC: Aprimoramentos Conjunto de resultados Roláveis Antigamente, ResultSet só ia para frente Agora pode-se navegar para frente e para trás Ou para qualquer posição no ResultSet Conjunto de resultados Atualizáveis Pode-se atualizar um ResultSet e refletir estas atualizações no banco de dados Java Básico 26 13

JDBC: Resultados Roláveis Cria-se Statement como: Statement st = con.createstatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); Todos os ResultSet deste Statement serão roláveis. Métodos de ResultSet: boolean previous(): Vai para o anterior void relative(n): Vai para o n-ésimo registro relativo ao elemento corrente (>0 p/ frente, <0 para trás) void absolute(n): Vai para n-ésimo registro int getrow(): Número do registro corrente first, last, beforefirst, afterlast, isfirst, islast, isbeforefirst, isafterlast Java Básico 27 JDBC: Resultados Atualizáveis Cria-se Statement como: Statement st = con.createstatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); Os ResultSet serão Atualizáveis. Métodos de ResultSet: void updatestring(string, String): atualiza campos void updaterow(): Envia alterações para o banco de dados. Antes de ir p/ próxima linha, deve ser chamado void cancelrowupdates(): Cancela atualizações void deleterow(): Deleta registro corrente void movetoinsertrow(): Vai para linha nova. Deve ser chamada antes dos updatexxx para inserir nova linha void insertrow(): Insere nova linha. Depois dos updatexxx void movetocurrentrow(): Move o cursor para a posição anterior à chamada de movetoinsertrow Java Básico 28 14

Exercícios Fazer um cadastro de pessoas usando Access. Inserção, remoção, atualização, busca, busca de todos. Tudo implementado na classe Pessoa. Deve-se ter uma classe de Teste, para fazer as chamadas à Pessoa. Cuidado, deve-se tratar exceções. Java Básico 29 15