JDBC, um framework para acesso a banco de dados Fábio Bezerra [email protected] JDBC: Conceitos ❚ FRAMEWORK: é um projeto genérico. agregado de classes relacionadas semanticamente, que implementam um comportamento genérico para aplicações específicas. ❚ É um framework que define um padrão de acesso a banco de dados, independente de onde o banco esteja. Roteiro ❚ Ambiente de Desenvolvimento ❚ Conexão com Banco de Dados ❚ Operações ❙ ❙ ❙ ❙ ❙ Consulta Inserção Atualização Exclusão Stored Procedure ❚ Objetos ❙ ❙ ❙ ❙ ❙ ❙ Connection DriverManager Statement ResultSet PreparedStatement SQLException ❚ Transações ❚ Exemplos ❚ Exercícios java.sql ❚ Pacote JDBC ❚ API necessária para executar comandos SQL ❚ Contém classes e interfaces para criar comandos SQL e recuperar os resultados providos por esses comandos Criando o Ambiente de Desenvolvimento ❚ INSTALAR JDK (JAVA DEVELOPMENT KIT) ❚ INSTALAR DRIVER JDBC, QUANDO ACESSO AO BANCO FOR NATIVO ❚ INSTALAR SGBD java.sql.DriverManager ❚ Classe que provê gerenciamento básico a qualquer driver JDBC ❚ getConnection(String url, String usuario, String senha) ❙ tenta estabelecer uma conexão com o banco de dados indicado na URL ❙ retorna um objeto Connection java.sql.Connection ❚ Interface que representa uma conexão com o banco de dados, permitindo obter informações do banco (metadados), realizar consultas, manipular registros, etc. ❚ Alguns métodos: ❙ close() - fecha a conexão com o banco de dados ❙ isClosed() - testa se a conexão está fechada ❙ isReadOnly() - testa se a conexão está no modo apenas leitura ❙ ... Conexão via ODBC (1) ❚ Para realizar uma conexão via odbc é necessário carregar o driver correspondente ao sistema gerenciador de banco de dados Ex.: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); ❚ Em seguida, gerar uma instância do objeto Connection FORMATO DA URL --> jdbc:subprotocol:subname DriverManager.getConnection(“jdbc:odbc:AliasTeste”); Conexão via ODBC (2) ❚ EXEMPLO DE CONEXÃO: import java.sql.Connection; import java.sql.DriverManager; public class TesteConexao { public TesteConexao() { try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); String url = “jdbc:odbc:aliasteste”; String usuario = “joão”, senha = “12345”; Connection conexao = DriverManager.getConnection(url, usuario, senha); } catch (Exception e) {System.out.println(“Erro!”);} } } Conexão via driver nativo (1) ❚ Semelhante ao processo via driver ODBC, é necessário carregar (instanciar) a classe que representa o driver nativo ❚ A classe é indicada pelo fabricante do driver ❙ Exemplo: Para o InterClient Class.forName("interbase.interclient.Driver"); Exercício - Conexão via ODBC ❚ Criar um banco de dados no InterBase chamado BancoTeste ❚ Criar uma classe chamada TesteConexao ❙ carregar driver JDBC/ODBC ❙ sun.jdbc.odbc.JdbcOdbcDriver ❙ gerar conexão ❚ OBS.: Os parâmetros da conexão (usuário, senha e nome do banco) devem ser obtidos a partir da linha de comando Conexão via driver nativo (2) ❚ O fabricante do driver nativo especifica o formato da url utilizada para realização da conexão com o banco de dados ❚ No caso do driver nativo para InterBase tem-se: jdbc:interbase://server/path_completo Conexão via driver nativo (3) ❚ EXEMPLO DE CONEXÃO (InterBase): import java.sql.Connection; import java.sql.DriverManager; public class TesteConexao { public TesteConexao() { try { Class.forName(“interbase.interclient.Driver”); String url = “jdbc:interbase://localhost/c:/teste/BancoTeste.gdb”; String usuario = “sysdba”, senha = “masterkey”; Connection conexao = DriverManager.getConnection(url, usuario, senha); } catch (Exception e) {System.out.println(“Erro!”);} } } Exercício - Conexão via driver nativo ❚ Usar o banco de dados criado no exercício anterior BancoTeste ❚ Criar uma classe chamada TesteConexao2 ❙ carregar driver JDBC/InterBase ❙ interbase.interclient.Driver ❙ gerar conexão ❚ OBS.: Os parâmetros da conexão (usuário, senha e nome do banco) devem ser obtidos a partir da linha de comando