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