JDBC - Exemplo de objeto de instrução
A seguir está o exemplo, que usa as três consultas a seguir, juntamente com a declaração de abertura e fechamento -
boolean execute(String SQL): Retorna um valor booleano verdadeiro se um objeto ResultSet puder ser recuperado; caso contrário, retorna falso. Use este método para executar instruções SQL DDL ou quando precisar usar o SQL verdadeiramente dinâmico.
int executeUpdate(String SQL): Retorna o número de linhas afetadas pela execução da instrução SQL. Use este método para executar instruções SQL, para as quais você espera obter um número de linhas afetadas - por exemplo, uma instrução INSERT, UPDATE ou DELETE.
ResultSet executeQuery(String SQL): Retorna um objeto ResultSet. Use este método quando você espera obter um conjunto de resultados, como faria com uma instrução SELECT.
Este código de amostra foi escrito com base na configuração do ambiente e do banco de dados feita nos capítulos anteriores.
Copie e cole o seguinte exemplo em JDBCExample.java, compile e execute da seguinte maneira -
//STEP 1. Import required packages
import java.sql.*;
public class JDBCExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql = "UPDATE Employees set age=30 WHERE id=103";
// Let us check if it returns a true Result Set or not.
Boolean ret = stmt.execute(sql);
System.out.println("Return value is : " + ret.toString() );
// Let us update age of the record with ID = 103;
int rows = stmt.executeUpdate(sql);
System.out.println("Rows impacted : " + rows );
// Let us select all the records and display them.
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}//end JDBCExample
Agora vamos compilar o exemplo acima da seguinte maneira -
C:\>javac JDBCExample.java
C:\>
Quando você corre JDBCExample, ele produz o seguinte resultado -
C:\>java JDBCExample
Connecting to database...
Creating statement...
Return value is : false
Rows impacted : 1
ID: 100, Age: 18, First: Zara, Last: Ali
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 30, First: Sumit, Last: Mittal
Goodbye!
C:\>