SlideShare uma empresa Scribd logo
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.

Mais conteúdo relacionado

Mais procurados

Mais procurados (19)

PHP e Mysql - DELETE
PHP e Mysql - DELETEPHP e Mysql - DELETE
PHP e Mysql - DELETE
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidades
 
Programando com estilo e Performance
Programando com estilo e Performance Programando com estilo e Performance
Programando com estilo e Performance
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
Plugin zend acl
Plugin zend aclPlugin zend acl
Plugin zend acl
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
CONEXÃO BANCO DE DADOS MYSQL COM JAVA
CONEXÃO BANCO DE DADOS MYSQL  COM JAVACONEXÃO BANCO DE DADOS MYSQL  COM JAVA
CONEXÃO BANCO DE DADOS MYSQL COM JAVA
 
Dinamizando Sites Estáticos
Dinamizando Sites EstáticosDinamizando Sites Estáticos
Dinamizando Sites Estáticos
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
Aula 8 php
Aula 8 phpAula 8 php
Aula 8 php
 
MongoDB
MongoDBMongoDB
MongoDB
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
 
DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004
 
Implementação de
Implementação de Implementação de
Implementação de
 
Sql proficiente
Sql proficienteSql proficiente
Sql proficiente
 

Destaque

Senai pais competentes = filhos brilhantes1
Senai   pais competentes = filhos brilhantes1Senai   pais competentes = filhos brilhantes1
Senai pais competentes = filhos brilhantes1Antonio Passos
 
JSP - Expression Language
JSP - Expression LanguageJSP - Expression Language
JSP - Expression LanguageAntonio Passos
 
Senai pais competentes = filhos brilhantes2
Senai   pais competentes = filhos brilhantes2Senai   pais competentes = filhos brilhantes2
Senai pais competentes = filhos brilhantes2Antonio Passos
 
Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Antonio Passos
 
Criação x evolução
Criação x evoluçãoCriação x evolução
Criação x evoluçãoAntonio Passos
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesAntonio Passos
 

Destaque (7)

Senai pais competentes = filhos brilhantes1
Senai   pais competentes = filhos brilhantes1Senai   pais competentes = filhos brilhantes1
Senai pais competentes = filhos brilhantes1
 
JSP - Expression Language
JSP - Expression LanguageJSP - Expression Language
JSP - Expression Language
 
Senai pais competentes = filhos brilhantes2
Senai   pais competentes = filhos brilhantes2Senai   pais competentes = filhos brilhantes2
Senai pais competentes = filhos brilhantes2
 
Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2
 
Criação x evolução
Criação x evoluçãoCriação x evolução
Criação x evolução
 
DAWJ - Filtros
DAWJ - FiltrosDAWJ - Filtros
DAWJ - Filtros
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando Padrões
 

Semelhante a Manipulando Bancos de Dados com JDBC

Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáZarathon Maia
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcJeison Barros
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1Sliedesharessbarbosa
 
Spring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webSpring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webelliando dias
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)elliando dias
 
Trabalho teorico de Linguagem de Programação
Trabalho teorico de Linguagem de ProgramaçãoTrabalho teorico de Linguagem de Programação
Trabalho teorico de Linguagem de Programaçãocarlosveiga
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsSuissa
 

Semelhante a Manipulando Bancos de Dados com JDBC (20)

Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Tutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e UsoTutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e Uso
 
Tutorial Dwr - Combos Dependentes
Tutorial Dwr - Combos DependentesTutorial Dwr - Combos Dependentes
Tutorial Dwr - Combos Dependentes
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
 
Jdbc
JdbcJdbc
Jdbc
 
JSTL em 21mins
JSTL em 21minsJSTL em 21mins
JSTL em 21mins
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
Jdbc e hibernate
Jdbc e hibernateJdbc e hibernate
Jdbc e hibernate
 
Fundamentos de Sockets
Fundamentos de SocketsFundamentos de Sockets
Fundamentos de Sockets
 
Fundamentos de Sockets
Fundamentos de SocketsFundamentos de Sockets
Fundamentos de Sockets
 
Java13
Java13Java13
Java13
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Spring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webSpring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento web
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)Invocação Remota de Procedimentos (RPC)
Invocação Remota de Procedimentos (RPC)
 
Trabalho teorico de Linguagem de Programação
Trabalho teorico de Linguagem de ProgramaçãoTrabalho teorico de Linguagem de Programação
Trabalho teorico de Linguagem de Programação
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 

Manipulando Bancos de Dados com JDBC

  • 1. Manipulando bancos de dados com JDBC Prof. Antonio Passos
  • 2. 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
  • 3. 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);
  • 4. 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); }
  • 5. 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();
  • 6. 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)
  • 7. 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());      }    } }
  • 8. 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());      }    } }
  • 9. 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.

Notas do Editor

  1. 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.
  2. 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.
  3. 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.
  4. 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
  5. 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.
  6. Seguem exemplos que demonstram a manipulação do banco de dados acima por aplicativos Java simples.