Manipulando Bancos de Dados com JDBC

Preview:

DESCRIPTION

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.

Citation preview

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 dadosa)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) + "\nIdade: " + 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.

Recommended