This section provides an overview of PreparedStatement.
If you have a SQL statement that needs to be executed multiple times, it is more efficient to use a JDBC PreparedStatement object to run it.
JDBC PreparedStatement class supports the following main features:
SQL statements PreparedStatement objects are pre-compiled on the database server side.
IN parameters are supported in SQL statements in PreparedStatement objects.
Batch execution mode is supported to run the run SQL statement multiple times in a single transaction.
A PreparedStatement object should be created from a Connection object with the prepareStatement() method and executed
like a regular Statement object as shown in the following program:
/**
* OraclePreparedSelect.java
* Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
*/
import java.sql.*;
public class OraclePreparedSelect {
public static void main(String [] args) {
Connection con = null;
try {
oracle.jdbc.pool.OracleDataSource ds
= new oracle.jdbc.pool.OracleDataSource();
ds.setDriverType("thin");
ds.setServerName("localhost");
ds.setPortNumber(1521);
ds.setDatabaseName("XE");
ds.setUser("Herong");
ds.setPassword("TopSecret");
con = ds.getConnection();
// PreparedStatement for SELECT statement
PreparedStatement sta = con.prepareStatement(
"SELECT * FROM Profile WHERE ID = 2");
// Execute the PreparedStatement as a query
ResultSet res = sta.executeQuery();
// Get values out of the ResultSet
res.next();
String firstName = res.getString("FirstName");
String lastName = res.getString("LastName");
System.out.println("User ID 2: "+firstName+' '+lastName);
// Close ResultSet and PreparedStatement
res.close();
sta.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
e.printStackTrace();
}
}
}
The output looks correct:
C:\>javac -cp .;\local\lib\ojdbc14.jar OraclePreparedSelect.java
C:\>java -cp .;\local\lib\ojdbc14.jar OraclePreparedSelect
User ID 2: Janet Gates