• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Manipulando Bancos de Dados com JDBC
 

Manipulando Bancos de Dados com JDBC

on

  • 9,220 views

Esta apresentação integra o conjunto de materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop em Java Aplicando Padrões de Projeto.

Esta apresentação integra o conjunto de materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop em Java Aplicando Padrões de Projeto.

Statistics

Views

Total Views
9,220
Views on SlideShare
9,190
Embed Views
30

Actions

Likes
0
Downloads
142
Comments
0

1 Embed 30

http://www.slideshare.net 30

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Esta apresentação faz parte dos materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop Utilizando Padrões . Nela veremos como obtém-se conexão com banco de dados relacionais usando JDBC para que seja possível realizar consultas e manipular seus dados.
  • O curso a distância Desenvolvimento de Aplicativos Desktop Utilizando Padrões é oferecido gratuitamente e tem por objetivos capacitar estudantes e profissionais de TI a... Projetar aplicativos desktop estruturados em camadas; Aplicar padrões de projeto na solução de aplicativos desktop; Construir aplicativos desktop usando a linguagem Java, a IDE NetBeans e o banco de dados H2.
  • Pode-se obter uma conexão com um banco de dados de duas formas. A primeira é usando o DriverManager. Para tanto, deve-se carregar o driver do banco de dados e, em seguida, abrir-se a conexão propriamente dita. Para que seja possível carregar o driver do banco de dados, ou seja, criar uma instância do driver e a registrar junto ao DriverManager, adiciona-se o driver ao diretório libext do JRE ou no caminho de classe do aplicativo ao executar o aplicativo ou ainda às bibliotecas do aplicativo. A conexão com o banco de dados é obtida pela chamada ao método static getConnection de DriverManager passando-se para ele o endereço do banco de dados e o par usuário/senha de acesso.
  • Objetos PreparedStatement são capazes de submeter instruções SQL para o banco de dados. Para obtê-los, chama-se o método prepareStatement de Connection passando como argumento a instrução SQL que se quer executar. Quase sempre, a instrução SQL passada para o método prepareStatement contém parâmetros. Para atribuir valores a eles, usamos os métodos setters de PreparedStatement. A cada tipo primitivo corresponde um método setXXX. Por exemplo, setBoolean, setInt, setDouble. Há também métodos set para tipos Blob, Date, Timestamp, etc. Após configurarmos os parâmetros da instrução SQL, podemos executá-la. Para tanto, no caso da instrução SQL ser uma instrução SELECT, chama-se o método executeQuery do objeto PreparedStatement. O método executeQuery retorna um objeto ResulSet com o resultado da consulta SQL. Para percorrer e processar os registros retornados, usa-se, em geral, uma instrução while. O método next posiciona o cursor do ResultSet na primeira linha do ResulSet. Se houver linhas, obtém-se os valores das coluna do ResultSet invocando métodos getXXXs, onde XXX corresponde a tipos Java específicos. Por exemplo, getLong, getString, getDate etc
  • Por alterar, aqui, entende-se incluir, atualizar ou excluir registros. Ou seja, executar uma das instruções DML: INSERT, UPDATE ou DELETE. No exemplo, vê-se como executar uma instrução INSERT. Primeiro, obtém-se um objeto PreparedStatement. Note que a instrução SQL passada como argumento contém dois parâmetros. Em seguida, atribui-se valores aos parâmetros da instrução SQL. No exemplo, o nome e o sobrenome do sócio que se quer gravar no banco de dados. O primeiro argumento de um método setXXX é a posição do parâmetro na instrução SQL. O segundo, o valor atribuído ao parâmetro. Por fim, executa-se a instrução SQL chamando-se o método executeUpdate de PreparedStatement. O método executeUpdate é o método a ser invocado sempre que a instrução SQL for uma instrução DML. Se a instrução SQL for SELECT, chama-se o método executeQuery.
  • Seguem exemplos que demonstram a manipulação do banco de dados acima por aplicativos Java simples.

Manipulando Bancos de Dados com JDBC Manipulando Bancos de Dados com JDBC Presentation Transcript

  • Manipulando bancos de dados com JDBC Prof. Antonio Passos
  • Apresentação Esta apresentação integra os materiais didáticos do curso a distância  Desenvolvimento de aplicativos desktop em Java aplicando padrões . Nesta apresentação é visto como executar instruções SELECT, INSERT, UPDATE e DELETE a partir de aplicativos Java usando JDBC. Para saber mais sobre este curso, acesse  http://ead.antoniopassos.net . Atenciosamente, Prof. Antonio Passos
  • Estabelecendo conexão com o banco de dados usando DriverManager 1)Carrega-se o driver do banco de dados String driver = "org.h2.Driver"; Class.forName("driver"); 2)Abre-se a conexão com o banco String url = "jdbc:h2:tcp://localhost//db/dukeclube/dukeclube"; String usuario = "admin"; String senha = "adminadmin"; Connection con = DriverManager.getConnection(url, usuario, senha);
  • Extraindo dados do banco de dados a)Obter um objeto PreparedStatement String sql = "SELECT * FROM socio WHERE codigo = ?"; PreparedStatement stmt = com.prepareStatement(sql); b)Atribuir valores aos parâmetros da instrução SQL long codigo = socio.getCodigo(); stmt.setLong(1, codigo); c)Executar o comando ResultSet rs = stmt.executeQuery(); d)Percorrer e tratar o resultado while(rs.next()){      String nome = rs.getString(2);      System.out.println("Sócio: " + nome); }
  • Alterando dados do banco de dados a)Obter um objeto PreparedStatement String sql = "INSERT INTO socio (nome, sobrenome) VALUES (?, ?)"; PreparedStatement stmt = com.prepareStatement(sql); b)Atribuir valores aos parâmetros da instrução SQL String nome = socio.getNome(); String sobrenome = socio.getSobrenome(); stmt.setString(1, nome); stmt.setString(2, sobrenome); c)Executar o comando stmt.executeUpdate();
  • Exemplos No console do H2, forneça as informações da figura e clique em Conectar para criar o banco de dados sampledb . Crie a tabela socio com o comando SQL abaixo. CREATE TABLE socio (codigo identity, nome varchar, idade int)
  • Inserindo registro import java.sql.*; public class Main {    private static String driver = "org.h2.Driver";    private static String url = "jdbc:h2:tcp://localhost//db/sampledb/sampledb";    private static String user = "admin";    private static String password = "adminadmin";    public static void main(String[] args) {      try {        Class.forName(driver);        Connection con = DriverManager.getConnection(url, user, password);        String sql = "INSERT INTO socio (nome, idade) VALUES (?, ?)";        PreparedStatement stmt = con.prepareStatement(sql);        stmt.setString(1, "Fulano");        stmt.setInt(2, 26);        stmt.executeUpdate();      } catch (ClassNotFoundException ex) {        System.out.println(ex.getMessage());      } catch (SQLException ex) {        System.out.println(ex.getMessage());      }    } }
  • Extraindo registros import java.sql.*; public class Main {    private static String driver = "org.h2.Driver";    private static String url = "jdbc:h2:tcp://localhost//db/sampledb/sampledb";    private static String user = "admin";    private static String password = "adminadmin";    public static void main(String[] args) {      try {        Class.forName(driver);        Connection con = DriverManager.getConnection(url, user, password);        String sql = "SELECT * FROM socio";        PreparedStatement stmt = con.prepareStatement(sql);        ResultSet rs = stmt.executeQuery();        while(rs.next()){          System.out.println("Nome: " + rs.getString(2) + " Idade: " + rs.getInt(3));        }      } catch (ClassNotFoundException ex) {        System.out.println(ex.getMessage());      } catch (SQLException ex) {        System.out.println(ex.getMessage());      }    } }
  • Referência bibliográfica PLEW, Ronald R. & STEPHENS, Ryan K. Aprenda em 24 SQL . Rio de Janeiro: Campus, 2000. DEITEL, H. M. Java: como programar . São Paulo: Pearson Education do Brasil, 2005. HORSTMANN, Cay. Big Java . Porto Alegre: Bookman, 2004.