CONEXÃO JAVA - BANCO
DE DADOS

RAQUEL, HEITOR, TIAGO, GEWTON




  Instituição Federal do Rio Grande do Norte- www.cefetrn...
JDBC

JAVA DATABASE CONNECTIVITY
INTRODUÇÃO
    API JDBC possibilita ao programador de aplicações

    Java abrir conexões com um SGBD, consultar e
    mo...
PADRÃO JDBC DE ACESSO A BASES DE DADO
  API de acesso para executar comandos SQL


 Implementa as interfaces do pacote p...
ARQUITETURA JDBC
ARQUITETURA JDBC

    Aplicações Java “conversam”

    com o Gerenciador de Drivers
    JDBC (DriverManager)

    Este, p...
Arquitetura de Desenvolvimento JDBC
IMPLEMENTAÇÃO

    O pacote JDBC vêm incluso com as distribuições Java



    As classes que compões o kit JDBC estão nos...
CLASSES PRINCIPAIS

    java.sql.DriverManager

        Provê serviços básicos para gerenciar diversos drivers JDBC
    ...
PASSO-A-PASSO

•   Carregar o Driver para a memória definir a
    URL de conexão com o repositório

•   Estabelecer a cone...
DRIVER
    Implementa a interface Driver



    Todo driver, ao ser carregado, se cadastra junto ao

    DriverManager a...
CARREGA DRIVE
OBTENDO CONEXÃO

     O argumento para o método getConnection tem um formato
 
     similar ao de uma URL
       jdbc:<s...
ABRINDO CONEXÃO

 try {
      Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
       Connection com =
     DriverManager.getC...
CRIANDO COMANDOS SQL
     Classe Connection: implementa a interface Connection
 

     A partir de uma conexão, podemos:
...
CRIANDO COMANDOS SQL(CONT.)
     Métodos
 



 void setAutoCommit(boolean ac) throws SQLException
 void commit() throws S...
ENVIANDO COMANDOS SQL

        Statement - envia texto SQL ao servidor
    


    Comandos diretos

      Podem ser dir...
ENVIANDO COMANDOS SQL(CONT)

     Métodos
 


 ResultSet executeQuery(String sql)throws SQLException
 int executeUpdate(S...
EXECULTANDO STATEMENT
      Há dois métodos da classe Statement para envio de comandos
  
      ao SGBD.

      Modificaç...
MANIPULANDO UM OBJETO
RESULTSET
       Métodos getXXX
   


       Recuperam um dado de acordo com o tipo
   


       F...
EQUIVALÊNCIA DE TIPOS
JAVAXSQL
OBTENÇÃO DO RESULTADO
       Representado por um ResultSet
   

       Linhas são acessadas em sequência
   

       São...
EXEMPLO DE CONSULTA
import java.sql.*; import java.io.*;
  public class Consulta{
    public static void main(String args[...
EXEMPLO DE INSERÇÃO
FECHANDO A CONEXÃO

  Uma conexão aberta custa caro para o

  sistema
 Este recurso deve ser liberado e dependendo
  do ...
CONCLUSÕES
 Novos padrões:


 JPA (Java Persistence API)- é um framework
 utilizado na camada de persistência para o
 de...
REFERÊNCIAS BIBLIOGRÁFICAS
  http://www.tecgraf.puc-rio.br/~ismael/Cursos/XJavaDat

 http://www.devmedia.com.br/articles...
Jdbc, JAVA DATABASE CONNECTIVITY
Upcoming SlideShare
Loading in...5
×

Jdbc, JAVA DATABASE CONNECTIVITY

5,494

Published on

Apresentação sobre JDBC, JAVA DATABASE CONNECTIVITY.
http://raquelcarsi.wordpress.com/

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • meu blog: http://raquelcarsi.wordpress.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,494
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
261
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Jdbc, JAVA DATABASE CONNECTIVITY

  1. 1. CONEXÃO JAVA - BANCO DE DADOS RAQUEL, HEITOR, TIAGO, GEWTON Instituição Federal do Rio Grande do Norte- www.cefetrn.br
  2. 2. JDBC JAVA DATABASE CONNECTIVITY
  3. 3. INTRODUÇÃO API JDBC possibilita ao programador de aplicações  Java abrir conexões com um SGBD, consultar e modificar algum BD, utilizando a linguagem SQL. Características:   Portabilidade  API independente do Banco de Dados
  4. 4. PADRÃO JDBC DE ACESSO A BASES DE DADO API de acesso para executar comandos SQL   Implementa as interfaces do pacote padrão java.sql  Envio para qualquer tipo de Banco de Dados relacional  Independente de API/Linguagem proprietária dos fabricantes de SGBD (Microsoft, Oracle, Informix, …)  Uso de drivers específicos de fabricantes
  5. 5. ARQUITETURA JDBC
  6. 6. ARQUITETURA JDBC Aplicações Java “conversam”  com o Gerenciador de Drivers JDBC (DriverManager) Este, por sua vez, se comunica  com algum driver atualmente carregado. Programador se preocupa  apenas com API do gerenciador de drivers. Drivers se ocupam da interface  com o SGBD. Ponte JDBC pode ser usada se  não existir um driver para um determinado SGBD.
  7. 7. Arquitetura de Desenvolvimento JDBC
  8. 8. IMPLEMENTAÇÃO O pacote JDBC vêm incluso com as distribuições Java  As classes que compões o kit JDBC estão nos pacotes java.sq  e javax.sql. Classes do pacote java.sql: Connection; Statement;  PreparedStatement; CallableStatement; ResultSet; Driver Deve-se obter um driver para o sistema de gerência de banco  de dados a ser utilizado. O URL a seguir fornece uma lista de drivers JDBC atualmente  disponíveis: http://industry.java.sun.com/products/jdbc/drivers 
  9. 9. CLASSES PRINCIPAIS java.sql.DriverManager  Provê serviços básicos para gerenciar diversos drivers JDBC  java.sql.Connection  Representa uma conexão estabelecida com o BD.  java.sql.Statement  Representa sentenças onde são inseridos os comandos SQL   Permite realizar todo o tratamento das consultas (select) e dos comandos de atualizações (insert, delete, update) java.sql.ResultSet  Representa o conjunto de registros resultante de uma consulta.  Permite manipular os resultados  Java e SQL  Colunas de um objeto ResultSet podem ser referenciadas por um número  posicional ou pelo nome da coluna do resultado. ResultSet rs.getString(Nome) ou ResultSet rs.getString(1) 
  10. 10. PASSO-A-PASSO • Carregar o Driver para a memória definir a URL de conexão com o repositório • Estabelecer a conexão com o repositório • Criar um objeto do tipo Statement • Executar uma consulta (recuperar, atualizar, incluir) • Com o resultado, executar um processamento • Fechar a conexão
  11. 11. DRIVER Implementa a interface Driver  Todo driver, ao ser carregado, se cadastra junto ao  DriverManager através de um inicializador estático. Basta carregar a classe que o driver estará disponível para uso Podemos fazer isso explicitamente :  void carregaDrivers() throws ClassNotFoundException { Class.forName(org.postgresql.Driver); ... }
  12. 12. CARREGA DRIVE
  13. 13. OBTENDO CONEXÃO O argumento para o método getConnection tem um formato  similar ao de uma URL  jdbc:<subprotocolo>:<subnome> Jdbc: Protocolo: JDBC é o único valor possível   subProtocolo: identifica um driver de BD  Subnome: indica a localização e nome do BD a ser acessado. Sintaxe é própria de cada driver  Use o método:  String url =jdbc:mysql://localhost:3306/Empresa; DriverManager.getConnection(url, usuario, senha); jdbc:postgresql://serverName/mydatabase
  14. 14. ABRINDO CONEXÃO try { Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection com = DriverManager.getConnection(jdbc:odbc:Northwind,,); ...// Código de manipulação do BD } catch (ClassNotFoundException e) { System.out.println(Classe não Encontrada!); } catch (SQLException e) { System.out.println(Erro na Conexão!); }
  15. 15. CRIANDO COMANDOS SQL Classe Connection: implementa a interface Connection  A partir de uma conexão, podemos:   criar comandos SQL (de diferentes formas)  configurar características da conexão, como:  controle de transações Criando comandos SQL  Class.forName(org.postgresql.Driver); Connection conn = DriverManager.getConnection(jdbc:postgresql:usuarios); Statement stat = conn.createStatement(); // stat pode ser utilizado para enviar comandos // SQL à base de dados
  16. 16. CRIANDO COMANDOS SQL(CONT.) Métodos  void setAutoCommit(boolean ac) throws SQLException void commit() throws SQLException void rollback() throws SQLException void close() throws SQLException
  17. 17. ENVIANDO COMANDOS SQL Statement - envia texto SQL ao servidor  Comandos diretos   Podem ser diretamente enviados à base através de um objeto que implemente a interface Statement  Comandos DDL, de atualização da base e de consulta são aceitos Statement   Um objeto da classe Statement é uma espécie de canal que envia comandos SQL através de uma conexão  O mesmo Statement pode enviar vários comandos  Para se criar um Statement, é preciso ter criado anteriormente um objeto Connection.  A partir de uma conexão, pode-se criar diversos objetos Statement.
  18. 18. ENVIANDO COMANDOS SQL(CONT) Métodos  ResultSet executeQuery(String sql)throws SQLException int executeUpdate(String sql) throws SQLException boolean execute(String sql) throws SQLException ResultSet getResultSet() throws SQLException int getUpdateCount() throws SQLException boolean getMoreResults() throws SQLException
  19. 19. EXECULTANDO STATEMENT Há dois métodos da classe Statement para envio de comandos  ao SGBD. Modificações: executeUpdate  Para comandos SQL “INSERT”, ”UPDATE”, ”DELETE”, ou outros que  alterem a base e não retornem dados  Forma geral: executeUpdate(<comando>)  Ex: stmt.executeUpdate(DELETE FROM Cliente);  Esse método retorna um inteiro: quantas linhas foram atingidas. Consultas: executeQuery  Para comandos “SELECT” ou outros que retornem dados   Forma geral: stmt.executeQuery(<comando>);  Esse método retorna um objeto da classe ResultSet  Ex: rs = stmt.executeQuery(SELECT * FROM Cliente);
  20. 20. MANIPULANDO UM OBJETO RESULTSET Métodos getXXX  Recuperam um dado de acordo com o tipo  Formas: rs.getXXX(<nome do campo>) ou  rs.getXXX(<posição do campo >) Exemplo:rs. getString(“nm_cliente”) ou rs.getString(2)  Método next(), previous() - retornam para o próximo  registro no conjunto ou para o anterior. Retornam valor lógico. Valor de retorno true indica que há outros registros.  Métodos first(), last() - posicionam o cursor no início ou  no final do conjunto de dados. Métodos isFirst(), isLast() - testam a posição do cursor;  retorna valor lógico.
  21. 21. EQUIVALÊNCIA DE TIPOS JAVAXSQL
  22. 22. OBTENÇÃO DO RESULTADO Representado por um ResultSet  Linhas são acessadas em sequência  São invalidados quando seu Statement for:   Fechado;  re-executado;  usado para obter o próximo resultado de uma Série; Métodos:  public abstract boolean next() throws SQLException public abstract void close() throws SQLException public abstract boolean getBoolean(int columnIndex) throws SQLException public abstract boolean getBoolean(String columnName) throws SQLException ... public abstract InputStream getAsciiStream(int columnIndex) throws SQLException public abstract int findColumn(String columnName) throws SQLException
  23. 23. EXEMPLO DE CONSULTA import java.sql.*; import java.io.*; public class Consulta{ public static void main(String args[]) throws IOException{ String comando=SELECT * FROM FONES ; try{ Connection con; Class.forName(com.ashna.jturbo.driver.Driver); con=DriverManager.getConnection (jdbc:JTurbo://rubi/javadb, sa,); System.out.println(Conectado OK); Statement st = con.createStatement(); ResultSet rs = st.executeQuery(comando); while (rs.next()) { System.out.println(Nome: +rs.getString(1)+ Fone: +rs.getString(2)); } st.close(); con.close(); } catch(SQLException e){ System.out.println(Erro no SQL!); return; } catch(ClassNotFoundException e){ System.out.println(Driver não Encontrada!); return; } System.in.read(); } }
  24. 24. EXEMPLO DE INSERÇÃO
  25. 25. FECHANDO A CONEXÃO Uma conexão aberta custa caro para o  sistema  Este recurso deve ser liberado e dependendo do repositório é esperado outros comandos para encerrar a conexão  Método:  connection.close();
  26. 26. CONCLUSÕES Novos padrões:   JPA (Java Persistence API)- é um framework utilizado na camada de persistência para o desenvolvedor ter uma maior produtividade, com impacto principal num modo para controlarmos a persistência dentro de Java. Pela primeira vez, nós, desenvolvedores temos um modo padrão para mapear nossos objetos para os do Banco de Dados.
  27. 27. REFERÊNCIAS BIBLIOGRÁFICAS http://www.tecgraf.puc-rio.br/~ismael/Cursos/XJavaDat   http://www.devmedia.com.br/articles/viewcomp.asp?co  http://www.cefetrn.br/~minora/jdbc/doku.php  http://java.sun.com/javase/technologies/database/inde
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×