Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90
Você está aqui: Java ::: Java + Bancos de Dados ::: PreparedStatement

Entenda e aprenda a usar a interface PreparedStatement em suas aplicações Java + Banco de Dados

Quantidade de visualizações: 8671 vezes
Um objeto da interface PreparedStatement, do pacote java.sql, é usado quando precisamos executar comandos SQL pré-compilados e obter o resultado produzido. Pré-compilação significa que estas instruções poderão ser executadas com uma eficiência maior do que usando simples objetos Statement. Um cenário onde isso ocorre com frequência é quando temos instruções SQL sendo repetidas dentro de um laço.

Entre os métodos mais importantes definidos nesta interface, temos:

executeUpdate(String sql): Este método executa uma instrução SQL INSERT, UPDATE ou DELETE e retorna um valor inteiro indicando a quantidade de registros afetados ou o valor 0 (no caso de comandos que não retornam nada).

executeQuery(String sql): Este método executa uma instrução SQL que retorna um único ResultSet (conjunto de dados).

execute(String sql): Executa instruções SQL que podem retornar múltiplos resultados.

As superinterfaces de PreparedStatement são AutoCloseable, Statement e Wrapper e sua sub-interface mais conhecida é CallableStatement.

Um objeto da interface PreparedStatement é obtido por meio de uma chamada ao método prepareStatement() da interface Connection. Veja:

1
2
3
4
5
6
7
8
9
10
11
12
13
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
// vamos obter um objeto PreparedStatement para criar uma consulta SQL
// parametrizada
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO livros " +
  "VALUES(?, ?, ?, ?)");

Aqui a variável conn se refere a um objeto Connection. Note também que usamos "?" como marcadores para os valores da consulta ou instrução parametrizada.

Veja que, quando disparamos este código, a variável pstmt guardará um referência a uma classe que implementa a interface PreparedStatement. No Sun Microsystem's JDBC Driver for MySQL, esta classe se chama PreparedStatement. Ela extende a classe StatementImpl e está no pacote com.mysql.jdbc.

Veja agora um trecho de código no qual usamos um objeto PreparedStatement para disparar uma instrução SQL INSERT para inserir um novo registro em uma tabela MySQL chamada "livros" contendo a seguinte estrutura:

1
2
3
4
5
Field    Type               Null   Key    Default   Extra
id       int(10) unsigned   NO     PRI    -         auto_increment
titulo   varchar(45)        NO     -      -         -
autor    varchar(45)        NO     -      -         -
preco    double             NO     -      -         -
Vamos ao código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
 
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
 
package estudosjavamysql;
 
import java.sql.*;
 
public class EstudosJavaMySQL{
  public static void main(String[] args){
    // strings de conexão
    String databaseURL = "jdbc:mysql://localhost/estudos";
    String usuario = "root";
    String senha = "osmar1234";
    String driverName = "com.mysql.jdbc.Driver";
     
    try {
      Class.forName(driverName).newInstance();
       
      // vamos obter um objeto Connection
      Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);
       
      // vamos obter um objeto PreparedStatement para criar uma consulta SQL
      // parametrizada
      PreparedStatement pstmt = conn.prepareStatement("INSERT INTO livros " +
        "VALUES(?, ?, ?, ?)");
       
      // vamos gravar um novo registro na tabela livros
      String titulo = "Desenvolvendo Aplicações Web Usando JSP";
      String autor = "Osmar J. Silva";
      double preco = 120.99;
       
      // vamos definir os parâmetros para o PreparedStatement
      pstmt.setNull(1, Types.NULL); // o primeiro campo é auto-incremento
      pstmt.setString(2, titulo);
      pstmt.setString(3, autor);
      pstmt.setDouble(4, preco);
       
      // e agora vamos disparar o comando INSERT
      pstmt.executeUpdate();
       
      // vamos mostrar uma mensagem de resultado
      System.out.println("Dados inseridos com sucesso.");
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }
    catch (Exception e) {
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
    }
  }
}

Se o comando foi executado com sucesso você verá uma mensagem parecida com:

"Dados inseridos com sucesso."

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 25 usuários muito felizes estudando em nosso site.