SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Java
Conexão com Banco de Dados
Aula nº 1
Universidade Gregório Semedo
MSc. Paulo Muedi
Introdução
• funcionalidade primordial em qualquer sistema;
• “é a habilidade para comunicar-se com um
repositório de dados”.
• A Linguagem Java possui uma Application
Programming Interface (API) que possibilita o
acesso a BDs;
• um modelo de conexão uniforme;
• API é a Java DataBase Connectivity (JDBC)
MSc. Paulo Muedi
JDBC
• O que é a JDBC?
– consiste em uma biblioteca;
– implementada em Java;
– disponibiliza classes e interfaces para o acesso ao
banco de dados;
• Para cada banco de dados existe uma
implementação: Drives, no caso interfaces que
devem ser implementadas;
• São interfaces porque levam em considerações
particularidades;
MSc. Paulo Muedi
Tipos de JDBC
• JDBC-ODBC:
– Também conhecido como Ponto JDBC-
ODBC;
– restrito à plataforma Windows;
– utiliza ODBC para conectar-se com o banco
de dados;
– converte métodos JDBC em chamadas às
funções do ODBC;
– geralmente é usado quando não há um driver
“puro-java”;
MSc. Paulo Muedi
Tipos de JDBC
• Driver API-Nativo:
– traduzir as chamadas realizadas com o JDBC
para realizadas com a API cliente do banco
de dados utilizado;
– Funciona +- como a JDBC-ODBC;
– pode ser que sejam necessários que outras
soluções;
MSc. Paulo Muedi
Tipos JDBC
• Driver de Protocolo de Rede:
– Converte a chamada por meio do JDBC para
um protocolo de rede;
– Independe do banco de dados que está
sendo utilizado;
– devido ao fato de se utilizar de protocolos que
não se prendem a um determinado banco de
dados;
– modelo de conexão mais flexível e
abrangente;
MSc. Paulo Muedi
Tipos JDBC
• Driver nativo:
– converte as chamadas JDBC diretamente no
protocolo do banco de dados;
– é implementado na linguagem Java;
– normalmente independe de plataforma;
– escrito pelos próprios desenvolvedores;
– muito flexível;
– tipo mais recomendado para ser usado e
mais utilizado no mercado;
MSc. Paulo Muedi
Pacote java.sql
• fornece a API para acesso e processamento de dados;
• geralmente acessa uma base de dados relacional;
• principais classes e interfaces:
– DriverManager, responsável por criar uma conexão com o banco
de dados;
– Connection, classe responsável por manter uma conexão aberta
com o banco;
– Statement, gerencia e executa instruções SQL;
– PreparedStatement, gerencia e executa instruções SQL,
permitindo também a passagem de parâmetros em uma
instrução;
– ResultSet, responsável por receber os dados obtidos em uma
pesquisa ao banco.
MSc. Paulo Muedi
DriverManager
• responsável pelo gerenciamento de drivers JDBC;
• estabelece conexões a bancos de dados;
// Carregando um driver em tempo de execução
Class.forName("org.gjt.mm.mysql.Driver");
// Tentando estabelecer conexão com o Banco de Dados
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/aula?
autoReconnect=true", "conta","senha");
• retorna uma implementação para a interface
Connection;
MSc. Paulo Muedi
Connection
• representa a conexão com o banco de dados;
• proporcionar informações sobre as tabelas do banco
através de transações;
• métodos desta interface freqüentemente utilizados
(SUN, 2007):
– commit(), executa todas as alterações feitas com o banco de
dados pela atual transação.
– rollback(), desfaz qualquer alteração feita com o banco de dados
pela atual transação.
– close(), libera o recurso que estava sendo utilizado pelo objeto.
• Se preocupa em como o banco irá se comportar;
MSc. Paulo Muedi
Statement
• Implementação de uma Interface que fornece métodos para executar
uma instrução SQL;
• Não aceita a passagem de parâmetros;
• principais métodos da Interface Statement são (SUN, 2007):
– executeUpdate(), executa instruções SQL do tipo: INSERT, UPDATE e
DELETE;
– execute(), executa instruções SQL de busca de dados do tipo SELECT;
– close(), libera o recurso que estava sendo utilizado pelo objeto.
// Instanciando o objeto statement (stmt)
Statement stmt = conn.createStatement();
// Executando uma instrução SQL.
stmt.executeUpdate(“INSERT INTO ALUNO VALUES (1, ‘Pedro da Silva’)”);
MSc. Paulo Muedi
PreparedStatement
• A interface PreparedStatement possui todos os recursos
da interface Statement;
• acrescentando a utilização de parâmetros em uma
instrução SQL;
• métodos da interface PreparedStatement são (SUN,
2007):
– execute(), consolida a instrução SQL informada;
– setDate(), método utilizado para atribuir um valor do tipo Data;
– setInt(), utilizado para atribuir valores do tipo inteiro;
– setString(), método utilizado para atribuir valores do tipo Alfa
Numéricos.
MSc. Paulo Muedi
PreparedStatement
// Instanciando o objeto preparedStatement (pstmt)
PreparedStatement pstmt =
conn.prepareStatement("UPDATE ALUNO SET NOME = ?");
// Setando o valor ao parâmetro
pstmt.setString(1, “MARIA RITA”);
MSc. Paulo Muedi
ResultSet
• Esta interface permite o recebimento e gerenciamento
do conjunto de dados resultante de uma consulta SQL;
• métodos capazes de acessar os dados;
• métodos desta interface freqüentemente utilizados
(SUN, 2007):
– next(), move o cursor para a próxima linha de dados, já que o
conjunto de dados retornados pela consulta SQL é armazenado
como em uma lista.
– close(), libera o recurso que estava sendo utilizado pelo objeto.
– getString(String columnName), recupera o valor da coluna
informada como parâmetro, da linha atual do conjunto de dados
recebidos pelo objeto ResultSet.
MSc. Paulo Muedi
ResultSet
//Recebendo o conjunto de dados da consulta SQL
ResultSet rs = stmt.executeQuery("SELECT id, nome FROM ALUNO");
// Se houver resultados, posiciona-se o cursor na próxima linha de
dados
while (rs.next()) {
// Recuperando os dados retornados pela consulta SQL
int id = rs.getInt("id");
String nome = rs.getString("nome");
}
• métodos como o getInt(), getString() para recuperar os
valores;
MSc. Paulo Muedi
Exemplo
import java.awt.Frame;
import java.awt.List;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Aula {
private Connection conn;
private PreparedStatement pstmt;
private Statement stmt;
private ResultSet rs;
MSc. Paulo Muedi
Exemplo
public void open() {
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost/aula04?autoReconnect=true",
"root", "");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
MSc. Paulo Muedi
Exemplo
public void close() {
try {
if (stmt != null)
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
MSc. Paulo Muedi
Exemplo
public void inserir(){
try {
// Abrindo a conexão com o banco
open();
// Instanciando o objeto statement (stmt)
stmt = conn.createStatement();
// Executando uma instrução SQL.
stmt.executeUpdate(
"INSERT INTO ALUNO VALUES (1, 'Pedro da Silva')");
// Fechando a conexão com o banco
close();
} catch (SQLException e) {
// Fechando a conexão com o banco
close();
e.printStackTrace();
}
}
MSc. Paulo Muedi
Exemplo
public void alterar(){
try {
// Abrindo a conexão com o banco
open();
// Instanciando o objeto preparedStatement (pstmt)
pstmt = conn.prepareStatement("UPDATE ALUNO SET NOME = ?
Where id = 1");
// Setando o valor ao parâmetro
pstmt.setString(1, "MARIA RITA");
// Fechando a conexão com o banco
pstmt.execute();
close();
} catch (SQLException e) {
// Fechando a conexão com o banco
close();
e.printStackTrace();
}
}
MSc. Paulo Muedi
Exemplo
public ResultSet buscarAlunos(){
try {
open();
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT id, nome FROM ALUNO");
return rs;
} catch (SQLException e) {
close();
e.printStackTrace();
}
return null;
}
MSc. Paulo Muedi
Exemplo
public void imprimirAlunos() throws SQLException{
JTextArea output = new JTextArea(20,30);
Banco aula = new Banco();
aula.rs = aula.buscarAlunos();
while (aula.rs.next()){
output.setText("Id: " + aula.rs.getInt("id") + " - " + "Nome: " +
aula.rs.getString("nome")+"n");
}
JFrame janela = new JFrame("Janela");
janela.setLocation(300, 300);
janela.setSize(300, 300);
janela.add(new JScrollPane(output));
janela.setVisible(true);
}
MSc. Paulo Muedi
Exemplo
public static void main(String[] args ){
Aula aula = new Aula();
aula.inserir();
aula.alterar();
aula.rs = aula.buscarAlunos();
try {
aula.imprimirAlunos();
} catch (SQLException e) {
e.printStackTrace();
}
}
MSc. Paulo Muedi
Referências
DEITEL, Harvey M. Java: como programar.
6 ed. São Paulo: Pearson Prentice Hall,
2005.
THOMPSON, Marco Aurélio. Java 2 &
banco de dados. São Paulo: Érica, 2002.
SUN, MicroSystem. Java Technology.
Disponivel em http://java.sun.com.
Acessado em 12/10/2007.
MSc. Paulo Muedi

Mais conteúdo relacionado

Mais procurados

Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Eduardo Mendes
 
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
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Helder da Rocha
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemPetronio Candido
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9Helder da Rocha
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeAdriano Tavares
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation EvolvedMarcelo Diniz
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoEduardo Mendes
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 

Mais procurados (20)

Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
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
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation Evolved
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 

Destaque

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
 
Confirurando Dababase Development no Eclipse Luna
Confirurando Dababase Development no Eclipse LunaConfirurando Dababase Development no Eclipse Luna
Confirurando Dababase Development no Eclipse LunaGeorge Mendonça
 
Tutorial MySQL com Java
Tutorial MySQL com JavaTutorial MySQL com Java
Tutorial MySQL com JavaMySQL Brasil
 
Aula 03-Tutorial ETL com PDI
Aula 03-Tutorial ETL com PDIAula 03-Tutorial ETL com PDI
Aula 03-Tutorial ETL com PDIJarley Nóbrega
 
Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCLuiz Ricardo Silva
 

Destaque (6)

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
 
Confirurando Dababase Development no Eclipse Luna
Confirurando Dababase Development no Eclipse LunaConfirurando Dababase Development no Eclipse Luna
Confirurando Dababase Development no Eclipse Luna
 
Tutorial MySQL com Java
Tutorial MySQL com JavaTutorial MySQL com Java
Tutorial MySQL com Java
 
Aula 03-Tutorial ETL com PDI
Aula 03-Tutorial ETL com PDIAula 03-Tutorial ETL com PDI
Aula 03-Tutorial ETL com PDI
 
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
 
Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBC
 

Semelhante a Aula1

Semelhante a Aula1 (20)

Jdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITYJdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITY
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Silo.tips aula 4-jdbc-java-database-connectivity
Silo.tips aula 4-jdbc-java-database-connectivitySilo.tips aula 4-jdbc-java-database-connectivity
Silo.tips aula 4-jdbc-java-database-connectivity
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Introdução ao JDBC - BarreirasJUG
Introdução ao JDBC - BarreirasJUGIntrodução ao JDBC - BarreirasJUG
Introdução ao JDBC - BarreirasJUG
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Java13
Java13Java13
Java13
 
CURSO JAVA 01
CURSO JAVA 01CURSO JAVA 01
CURSO JAVA 01
 
Padrão de Projeto Facade
Padrão de Projeto FacadePadrão de Projeto Facade
Padrão de Projeto Facade
 
Jdbc
JdbcJdbc
Jdbc
 
Java database connectivity jdbc
Java database connectivity   jdbcJava database connectivity   jdbc
Java database connectivity jdbc
 
Bancos de dados e jdbc java para desenvolvimento web
Bancos de dados e jdbc   java para desenvolvimento webBancos de dados e jdbc   java para desenvolvimento web
Bancos de dados e jdbc java para desenvolvimento web
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
Conectores mule
Conectores muleConectores mule
Conectores mule
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 

Aula1

  • 1. Java Conexão com Banco de Dados Aula nº 1 Universidade Gregório Semedo MSc. Paulo Muedi
  • 2. Introdução • funcionalidade primordial em qualquer sistema; • “é a habilidade para comunicar-se com um repositório de dados”. • A Linguagem Java possui uma Application Programming Interface (API) que possibilita o acesso a BDs; • um modelo de conexão uniforme; • API é a Java DataBase Connectivity (JDBC) MSc. Paulo Muedi
  • 3. JDBC • O que é a JDBC? – consiste em uma biblioteca; – implementada em Java; – disponibiliza classes e interfaces para o acesso ao banco de dados; • Para cada banco de dados existe uma implementação: Drives, no caso interfaces que devem ser implementadas; • São interfaces porque levam em considerações particularidades; MSc. Paulo Muedi
  • 4. Tipos de JDBC • JDBC-ODBC: – Também conhecido como Ponto JDBC- ODBC; – restrito à plataforma Windows; – utiliza ODBC para conectar-se com o banco de dados; – converte métodos JDBC em chamadas às funções do ODBC; – geralmente é usado quando não há um driver “puro-java”; MSc. Paulo Muedi
  • 5. Tipos de JDBC • Driver API-Nativo: – traduzir as chamadas realizadas com o JDBC para realizadas com a API cliente do banco de dados utilizado; – Funciona +- como a JDBC-ODBC; – pode ser que sejam necessários que outras soluções; MSc. Paulo Muedi
  • 6. Tipos JDBC • Driver de Protocolo de Rede: – Converte a chamada por meio do JDBC para um protocolo de rede; – Independe do banco de dados que está sendo utilizado; – devido ao fato de se utilizar de protocolos que não se prendem a um determinado banco de dados; – modelo de conexão mais flexível e abrangente; MSc. Paulo Muedi
  • 7. Tipos JDBC • Driver nativo: – converte as chamadas JDBC diretamente no protocolo do banco de dados; – é implementado na linguagem Java; – normalmente independe de plataforma; – escrito pelos próprios desenvolvedores; – muito flexível; – tipo mais recomendado para ser usado e mais utilizado no mercado; MSc. Paulo Muedi
  • 8. Pacote java.sql • fornece a API para acesso e processamento de dados; • geralmente acessa uma base de dados relacional; • principais classes e interfaces: – DriverManager, responsável por criar uma conexão com o banco de dados; – Connection, classe responsável por manter uma conexão aberta com o banco; – Statement, gerencia e executa instruções SQL; – PreparedStatement, gerencia e executa instruções SQL, permitindo também a passagem de parâmetros em uma instrução; – ResultSet, responsável por receber os dados obtidos em uma pesquisa ao banco. MSc. Paulo Muedi
  • 9. DriverManager • responsável pelo gerenciamento de drivers JDBC; • estabelece conexões a bancos de dados; // Carregando um driver em tempo de execução Class.forName("org.gjt.mm.mysql.Driver"); // Tentando estabelecer conexão com o Banco de Dados Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/aula? autoReconnect=true", "conta","senha"); • retorna uma implementação para a interface Connection; MSc. Paulo Muedi
  • 10. Connection • representa a conexão com o banco de dados; • proporcionar informações sobre as tabelas do banco através de transações; • métodos desta interface freqüentemente utilizados (SUN, 2007): – commit(), executa todas as alterações feitas com o banco de dados pela atual transação. – rollback(), desfaz qualquer alteração feita com o banco de dados pela atual transação. – close(), libera o recurso que estava sendo utilizado pelo objeto. • Se preocupa em como o banco irá se comportar; MSc. Paulo Muedi
  • 11. Statement • Implementação de uma Interface que fornece métodos para executar uma instrução SQL; • Não aceita a passagem de parâmetros; • principais métodos da Interface Statement são (SUN, 2007): – executeUpdate(), executa instruções SQL do tipo: INSERT, UPDATE e DELETE; – execute(), executa instruções SQL de busca de dados do tipo SELECT; – close(), libera o recurso que estava sendo utilizado pelo objeto. // Instanciando o objeto statement (stmt) Statement stmt = conn.createStatement(); // Executando uma instrução SQL. stmt.executeUpdate(“INSERT INTO ALUNO VALUES (1, ‘Pedro da Silva’)”); MSc. Paulo Muedi
  • 12. PreparedStatement • A interface PreparedStatement possui todos os recursos da interface Statement; • acrescentando a utilização de parâmetros em uma instrução SQL; • métodos da interface PreparedStatement são (SUN, 2007): – execute(), consolida a instrução SQL informada; – setDate(), método utilizado para atribuir um valor do tipo Data; – setInt(), utilizado para atribuir valores do tipo inteiro; – setString(), método utilizado para atribuir valores do tipo Alfa Numéricos. MSc. Paulo Muedi
  • 13. PreparedStatement // Instanciando o objeto preparedStatement (pstmt) PreparedStatement pstmt = conn.prepareStatement("UPDATE ALUNO SET NOME = ?"); // Setando o valor ao parâmetro pstmt.setString(1, “MARIA RITA”); MSc. Paulo Muedi
  • 14. ResultSet • Esta interface permite o recebimento e gerenciamento do conjunto de dados resultante de uma consulta SQL; • métodos capazes de acessar os dados; • métodos desta interface freqüentemente utilizados (SUN, 2007): – next(), move o cursor para a próxima linha de dados, já que o conjunto de dados retornados pela consulta SQL é armazenado como em uma lista. – close(), libera o recurso que estava sendo utilizado pelo objeto. – getString(String columnName), recupera o valor da coluna informada como parâmetro, da linha atual do conjunto de dados recebidos pelo objeto ResultSet. MSc. Paulo Muedi
  • 15. ResultSet //Recebendo o conjunto de dados da consulta SQL ResultSet rs = stmt.executeQuery("SELECT id, nome FROM ALUNO"); // Se houver resultados, posiciona-se o cursor na próxima linha de dados while (rs.next()) { // Recuperando os dados retornados pela consulta SQL int id = rs.getInt("id"); String nome = rs.getString("nome"); } • métodos como o getInt(), getString() para recuperar os valores; MSc. Paulo Muedi
  • 16. Exemplo import java.awt.Frame; import java.awt.List; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Aula { private Connection conn; private PreparedStatement pstmt; private Statement stmt; private ResultSet rs; MSc. Paulo Muedi
  • 17. Exemplo public void open() { try { Class.forName("org.gjt.mm.mysql.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost/aula04?autoReconnect=true", "root", ""); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } MSc. Paulo Muedi
  • 18. Exemplo public void close() { try { if (stmt != null) stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } MSc. Paulo Muedi
  • 19. Exemplo public void inserir(){ try { // Abrindo a conexão com o banco open(); // Instanciando o objeto statement (stmt) stmt = conn.createStatement(); // Executando uma instrução SQL. stmt.executeUpdate( "INSERT INTO ALUNO VALUES (1, 'Pedro da Silva')"); // Fechando a conexão com o banco close(); } catch (SQLException e) { // Fechando a conexão com o banco close(); e.printStackTrace(); } } MSc. Paulo Muedi
  • 20. Exemplo public void alterar(){ try { // Abrindo a conexão com o banco open(); // Instanciando o objeto preparedStatement (pstmt) pstmt = conn.prepareStatement("UPDATE ALUNO SET NOME = ? Where id = 1"); // Setando o valor ao parâmetro pstmt.setString(1, "MARIA RITA"); // Fechando a conexão com o banco pstmt.execute(); close(); } catch (SQLException e) { // Fechando a conexão com o banco close(); e.printStackTrace(); } } MSc. Paulo Muedi
  • 21. Exemplo public ResultSet buscarAlunos(){ try { open(); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT id, nome FROM ALUNO"); return rs; } catch (SQLException e) { close(); e.printStackTrace(); } return null; } MSc. Paulo Muedi
  • 22. Exemplo public void imprimirAlunos() throws SQLException{ JTextArea output = new JTextArea(20,30); Banco aula = new Banco(); aula.rs = aula.buscarAlunos(); while (aula.rs.next()){ output.setText("Id: " + aula.rs.getInt("id") + " - " + "Nome: " + aula.rs.getString("nome")+"n"); } JFrame janela = new JFrame("Janela"); janela.setLocation(300, 300); janela.setSize(300, 300); janela.add(new JScrollPane(output)); janela.setVisible(true); } MSc. Paulo Muedi
  • 23. Exemplo public static void main(String[] args ){ Aula aula = new Aula(); aula.inserir(); aula.alterar(); aula.rs = aula.buscarAlunos(); try { aula.imprimirAlunos(); } catch (SQLException e) { e.printStackTrace(); } } MSc. Paulo Muedi
  • 24. Referências DEITEL, Harvey M. Java: como programar. 6 ed. São Paulo: Pearson Prentice Hall, 2005. THOMPSON, Marco Aurélio. Java 2 & banco de dados. São Paulo: Érica, 2002. SUN, MicroSystem. Java Technology. Disponivel em http://java.sun.com. Acessado em 12/10/2007. MSc. Paulo Muedi