JDBC for MySQL - Herong's Tutorial Examples - v3.13, by Herong Yang
Connecting JdbcRowSet with a Predefined Connection Object
This section describes how to connect a JdbcRowSet object to a database server with a predefined connection object.
Another way to connect a JdbcRowSet object to a database server is to pass a predefined connection object to the JdbcRowSetImpl constructor. Here is a sample sequence of method calls:
// Create a Connection object
Connection con = DriverManager.getConnection("connection_url");
// Creating a JdbcRowSet object with a connection object
JdbcRowSet jrs = new JdbcRowSetImpl(con);
// Provide a SQL statement for future use
jrs.setCommand("SQL_statement");
// Create a connnection using DriverManager
// Execute the SQL statement
jrs.execute();
Here is a sample program that connects a JdbcRowSet object to MySQL server with a predefined connection object:
/* MySqlRowSetConnectionObject.java
* Copyright (c) HerongYang.com. All Rights Reserved.
*/
import java.sql.*;
import javax.sql.rowset.RowSetProvider;
import javax.sql.rowset.JdbcRowSet;
public class MySqlRowSetConnectionObject {
public static void main(String [] args) {
Connection con = null;
try {
// Create a Connection object
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/HerongDB?"
+ "user=Herong&password=TopSecret&serverTimezone="+tzid);
// Pass the Connection object to the new JdbcRowSet object
javax.sql.rowset.JdbcRowSet jrs
= new com.sun.rowset.JdbcRowSetImpl(con);
// Set a SQL statement
jrs.setCommand("SELECT 'Hello world!'");
// Connect and run the statement
jrs.execute();
// Get the result
jrs.next();
System.out.println("Result: "+jrs.getString(1));
// Close resources
jrs.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
}
}
}
Try to compile it with JDK 13, I got an error:
herong> javac -cp .:mysql-connector-java.jar \
MySqlRowSetConnectionObject.java
MySqlRowSetConnectionObject.java:19: error: package com.sun.rowset is not
visible
= new com.sun.rowset.JdbcRowSetImpl(con);
^
(package com.sun.rowset is declared in module java.sql.rowset, which
does not export it)
Too bad, the com.sun.rowset.JdbcRowSetImpl class is hiding inside the java.sql.rowset module now since JDK 9. Passing a predefined connection object to the JdbcRowSetImpl constructor is not an option anymore.
The above program works fine with JDK 8:
herong> javac MySqlRowSetConnectionObject.java
MySqlRowSetConnectionObject.java:19: warning: JdbcRowSetImpl is
internal proprietary API and may be removed in a future release
= new com.sun.rowset.JdbcRowSetImpl(con);
herong> java -cp .:mysql-connector-java-5.1.36-bin.jar \
MySqlRowSetConnectionObject
Result: Hello world!
Table of Contents
JDBC (Java Database Connectivity) Introduction
MySQL JDBC Driver (MySQL Connector/J)
►MySQL - Reference Implementation of JdbcRowSet
Connecting JdbcRowSet to Database Servers
Sun Implementation of JdbcRowSet API
Connecting JdbcRowSet with a Connection URL
►Connecting JdbcRowSet with a Predefined Connection Object
Connecting JdbcRowSet with a Predefined ResultSet Object
Connecting JdbcRowSet with JNDI Directory Service
JdbcRowSet Query Statement with Parameters
Inserting Rows with JdbcRowSet Objects
MySQL - JBDC CallableStatement
MySQL CLOB (Character Large Object) - TEXT
MySQL BLOB (Binary Large Object) - BLOB