JDBC for MySQL - Herong's Tutorial Examples - v3.13, by Herong Yang
PreparedStatement Overview
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:
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:
/* MySqlPreparedSelect.java
* Copyright (c) HerongYang.com. All Rights Reserved.
*/
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class MySqlPreparedSelect {
public static void main(String [] args) {
Connection con = null;
try {
com.mysql.cj.jdbc.MysqlDataSource ds
= new com.mysql.cj.jdbc.MysqlDataSource();
// com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds
// = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
ds.setServerName("localhost");
ds.setPortNumber(3306);
ds.setDatabaseName("HerongDB");
ds.setUser("Herong");
ds.setPassword("TopSecret");
ds.setServerTimezone(java.util.TimeZone.getDefault().getID());
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:
User ID 2: Janet Gates
Table of Contents
JDBC (Java Database Connectivity) Introduction
MySQL JDBC Driver (MySQL Connector/J)
PreparedStatement with Parameters
PreparedStatement in Batch Mode
Performance of Inserting Rows with a PreparedStatement
InnoDB (MySQL 5.5 Default Engine) Slower on INSERT
Performance of Inserting Rows with a Regular Statement
Performance of Inserting Rows with a ResultSet
MySQL - Reference Implementation of JdbcRowSet
MySQL - JBDC CallableStatement
MySQL CLOB (Character Large Object) - TEXT
MySQL BLOB (Binary Large Object) - BLOB