JDBC Tutorials - Herong's Tutorial Examples - v3.14, by Herong Yang
PreparedStatement with Parameters
This section describes how to create PreparedStatement objects with Parameters.
To make a PreparedStatement object more flexible, you add parameters to the embedded SQL statement with question marks (?). Real values should be added before executing the PreparedStatement object.
Adding values to PreparedStatement parameters should be done by calling setXXX() methods in this format:
ps.setXXX(1, value); ps.setXXX(2, value); ... ps.setXXX(n, value); // Sets value to the n-th parameter.
JDBC supports many setXXX() methods, one for each Java data type, so that you can set parameter values directly with the desired Java data types without any conversion. Here is a list of setXXX() methods:
Here is a sample program that created a PreparedStatement object with one parameter:
/* DerbyPreparedStatementParameter.java * Copyright (c) HerongYang.com. All Rights Reserved. */ import java.util.*; import java.sql.*; import javax.sql.*; import javax.naming.*; public class DerbyPreparedStatementParameter { public static void main(String [] args) { Connection con = null; try { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory"); env.put(Context.PROVIDER_URL, "file:/local/fscontext"); Context ctx = new InitialContext(env); DataSource ds = (DataSource) ctx.lookup("DerbyTestDB"); con = ds.getConnection(); // PreparedStatement for SELECT statement with one parameter PreparedStatement sta = con.prepareStatement( "SELECT * FROM Profile WHERE ID = ?"); // Provide a value to the parameter int id = 9; sta.setInt(1,id); // 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 "+id+": "+firstName+' '+lastName); // Close ResultSet and PreparedStatement res.close(); sta.close(); con.close(); } catch (Exception e) { System.err.println("Exception: "+e.getMessage()); e.printStackTrace(); } } }
Here is the output:
User ID 9: Johnny Caprio
Table of Contents
JDBC (Java Database Connectivity) Introduction
Installing and Running Derby (Java DB)
Derby (Java DB) JDBC DataSource Objects
Derby (Java DB) - DML Statements
Derby (Java DB) - ResultSet Objects of Queries
►Derby (Java DB) - PreparedStatement
►PreparedStatement with Parameters
PreparedStatement in Batch Mode
Performance of Inserting Rows with a PreparedStatement
Performance of Inserting Rows with a Regular Statement
Performance of Inserting Rows with a ResultSet
Summary of JDBC Drivers and Database Servers