//STEP 1. Import required packages
import java.sql.* ;
public class Main {
// JDBC driver name and database URL
static final String JDBC_DRIVER
= "com.mysql.jdbc.Driver" ; static final String DB_URL
= "jdbc:mysql://localhost/EMP" ;
// Database credentials
static final String USER
= "username" ; static final String PASS
= "password" ;
public static void main
( String [ ] args
) { try {
//STEP 2: Register JDBC driver
Class .forName ( "com.mysql.jdbc.Driver" ) ;
//STEP 3: Open a connection
System .
out .
println ( "Connecting to database..." ) ;
//STEP 4: Execute a query to create statment with
// required arguments for RS example.
System .
out .
println ( "Creating statement..." ) ; stmt = conn.createStatement (
sql = "SELECT id, first, last, age FROM Employees" ;
// Move cursor to the last row.
System .
out .
println ( "Moving cursor to the last..." ) ; rs.last ( ) ;
//STEP 5: Extract data from result set
System .
out .
println ( "Displaying record..." ) ; //Retrieve by column name
int id = rs.getInt ( "id" ) ;
int age = rs.getInt ( "age" ) ;
String first
= rs.
getString ( "first" ) ; String last
= rs.
getString ( "last" ) ;
//Display values
System .
out .
print ( "ID: " + id
) ; System .
out .
print ( ", Age: " + age
) ; System .
out .
print ( ", First: " + first
) ; System .
out .
println ( ", Last: " + last
) ;
// Move cursor to the first row.
System .
out .
println ( "Moving cursor to the first row..." ) ; rs.first ( ) ;
//STEP 6: Extract data from result set
System .
out .
println ( "Displaying record..." ) ; //Retrieve by column name
id = rs.getInt ( "id" ) ;
age = rs.getInt ( "age" ) ;
first = rs.getString ( "first" ) ;
last = rs.getString ( "last" ) ;
//Display values
System .
out .
print ( "ID: " + id
) ; System .
out .
print ( ", Age: " + age
) ; System .
out .
print ( ", First: " + first
) ; System .
out .
println ( ", Last: " + last
) ; // Move cursor to the first row.
System .
out .
println ( "Moving cursor to the next row..." ) ; rs.next ( ) ;
//STEP 7: Extract data from result set
System .
out .
println ( "Displaying record..." ) ; id = rs.getInt ( "id" ) ;
age = rs.getInt ( "age" ) ;
first = rs.getString ( "first" ) ;
last = rs.getString ( "last" ) ;
//Display values
System .
out .
print ( "ID: " + id
) ; System .
out .
print ( ", Age: " + age
) ; System .
out .
print ( ", First: " + first
) ; System .
out .
println ( ", Last: " + last
) ;
//STEP 8: Clean-up environment
rs.close ( ) ;
stmt.close ( ) ;
conn.close ( ) ;
//Handle errors for JDBC
se.printStackTrace ( ) ;
//Handle errors for Class.forName
e.printStackTrace ( ) ;
} finally {
//finally block used to close resources
try {
if ( stmt!= null )
stmt.close ( ) ;
} // nothing we can do
try {
if ( conn!= null )
conn.close ( ) ;
se.printStackTrace ( ) ;
} //end finally try
} //end try
System .
out .
println ( "Goodbye!" ) ; } //end main
} //end JDBCExample
Ly9TVEVQIDEuIEltcG9ydCByZXF1aXJlZCBwYWNrYWdlcwppbXBvcnQgamF2YS5zcWwuKjsKCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgLy8gSkRCQyBkcml2ZXIgbmFtZSBhbmQgZGF0YWJhc2UgVVJMCiAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgSkRCQ19EUklWRVIgPSAiY29tLm15c3FsLmpkYmMuRHJpdmVyIjsgIAogICBzdGF0aWMgZmluYWwgU3RyaW5nIERCX1VSTCA9ICJqZGJjOm15c3FsOi8vbG9jYWxob3N0L0VNUCI7CgogICAvLyAgRGF0YWJhc2UgY3JlZGVudGlhbHMKICAgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSID0gInVzZXJuYW1lIjsKICAgc3RhdGljIGZpbmFsIFN0cmluZyBQQVNTID0gInBhc3N3b3JkIjsKICAgCnB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgQ29ubmVjdGlvbiBjb25uID0gbnVsbDsKICAgU3RhdGVtZW50IHN0bXQgPSBudWxsOwogICB0cnl7CiAgICAgIC8vU1RFUCAyOiBSZWdpc3RlciBKREJDIGRyaXZlcgogICAgICBDbGFzcy5mb3JOYW1lKCJjb20ubXlzcWwuamRiYy5Ecml2ZXIiKTsKCiAgICAgIC8vU1RFUCAzOiBPcGVuIGEgY29ubmVjdGlvbgogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbm5lY3RpbmcgdG8gZGF0YWJhc2UuLi4iKTsKICAgICAgY29ubiA9IERyaXZlck1hbmFnZXIuZ2V0Q29ubmVjdGlvbihEQl9VUkwsVVNFUixQQVNTKTsKCiAgICAgIC8vU1RFUCA0OiBFeGVjdXRlIGEgcXVlcnkgdG8gY3JlYXRlIHN0YXRtZW50IHdpdGgKICAgICAgLy8gcmVxdWlyZWQgYXJndW1lbnRzIGZvciBSUyBleGFtcGxlLgogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNyZWF0aW5nIHN0YXRlbWVudC4uLiIpOwogICAgICBzdG10ID0gY29ubi5jcmVhdGVTdGF0ZW1lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdFNldC5UWVBFX1NDUk9MTF9JTlNFTlNJVElWRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0U2V0LkNPTkNVUl9SRUFEX09OTFkpOwogICAgICBTdHJpbmcgc3FsOwogICAgICBzcWwgPSAiU0VMRUNUIGlkLCBmaXJzdCwgbGFzdCwgYWdlIEZST00gRW1wbG95ZWVzIjsKICAgICAgUmVzdWx0U2V0IHJzID0gc3RtdC5leGVjdXRlUXVlcnkoc3FsKTsKCiAgICAgIC8vIE1vdmUgY3Vyc29yIHRvIHRoZSBsYXN0IHJvdy4KICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNb3ZpbmcgY3Vyc29yIHRvIHRoZSBsYXN0Li4uIik7CiAgICAgIHJzLmxhc3QoKTsKICAgICAgCiAgICAgIC8vU1RFUCA1OiBFeHRyYWN0IGRhdGEgZnJvbSByZXN1bHQgc2V0CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGlzcGxheWluZyByZWNvcmQuLi4iKTsKICAgICAgLy9SZXRyaWV2ZSBieSBjb2x1bW4gbmFtZQogICAgICBpbnQgaWQgID0gcnMuZ2V0SW50KCJpZCIpOwogICAgICBpbnQgYWdlID0gcnMuZ2V0SW50KCJhZ2UiKTsKICAgICAgU3RyaW5nIGZpcnN0ID0gcnMuZ2V0U3RyaW5nKCJmaXJzdCIpOwogICAgICBTdHJpbmcgbGFzdCA9IHJzLmdldFN0cmluZygibGFzdCIpOwogIAogICAgICAvL0Rpc3BsYXkgdmFsdWVzCiAgICAgIFN5c3RlbS5vdXQucHJpbnQoIklEOiAiICsgaWQpOwogICAgICBTeXN0ZW0ub3V0LnByaW50KCIsIEFnZTogIiArIGFnZSk7CiAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgRmlyc3Q6ICIgKyBmaXJzdCk7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLCBMYXN0OiAiICsgbGFzdCk7CgogICAgICAvLyBNb3ZlIGN1cnNvciB0byB0aGUgZmlyc3Qgcm93LgogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1vdmluZyBjdXJzb3IgdG8gdGhlIGZpcnN0IHJvdy4uLiIpOwogICAgICBycy5maXJzdCgpOwogICAgICAKICAgICAgLy9TVEVQIDY6IEV4dHJhY3QgZGF0YSBmcm9tIHJlc3VsdCBzZXQKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEaXNwbGF5aW5nIHJlY29yZC4uLiIpOwogICAgICAvL1JldHJpZXZlIGJ5IGNvbHVtbiBuYW1lCiAgICAgIGlkICA9IHJzLmdldEludCgiaWQiKTsKICAgICAgYWdlID0gcnMuZ2V0SW50KCJhZ2UiKTsKICAgICAgZmlyc3QgPSBycy5nZXRTdHJpbmcoImZpcnN0Iik7CiAgICAgIGxhc3QgPSBycy5nZXRTdHJpbmcoImxhc3QiKTsKICAKICAgICAgLy9EaXNwbGF5IHZhbHVlcwogICAgICBTeXN0ZW0ub3V0LnByaW50KCJJRDogIiArIGlkKTsKICAgICAgU3lzdGVtLm91dC5wcmludCgiLCBBZ2U6ICIgKyBhZ2UpOwogICAgICBTeXN0ZW0ub3V0LnByaW50KCIsIEZpcnN0OiAiICsgZmlyc3QpOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiwgTGFzdDogIiArIGxhc3QpOwogICAgIC8vIE1vdmUgY3Vyc29yIHRvIHRoZSBmaXJzdCByb3cuCgogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1vdmluZyBjdXJzb3IgdG8gdGhlIG5leHQgcm93Li4uIik7CiAgICAgIHJzLm5leHQoKTsKICAgICAgCiAgICAgIC8vU1RFUCA3OiBFeHRyYWN0IGRhdGEgZnJvbSByZXN1bHQgc2V0CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGlzcGxheWluZyByZWNvcmQuLi4iKTsKICAgICAgaWQgID0gcnMuZ2V0SW50KCJpZCIpOwogICAgICBhZ2UgPSBycy5nZXRJbnQoImFnZSIpOwogICAgICBmaXJzdCA9IHJzLmdldFN0cmluZygiZmlyc3QiKTsKICAgICAgbGFzdCA9IHJzLmdldFN0cmluZygibGFzdCIpOwogIAogICAgICAvL0Rpc3BsYXkgdmFsdWVzCiAgICAgIFN5c3RlbS5vdXQucHJpbnQoIklEOiAiICsgaWQpOwogICAgICBTeXN0ZW0ub3V0LnByaW50KCIsIEFnZTogIiArIGFnZSk7CiAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgRmlyc3Q6ICIgKyBmaXJzdCk7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLCBMYXN0OiAiICsgbGFzdCk7CgogICAgICAvL1NURVAgODogQ2xlYW4tdXAgZW52aXJvbm1lbnQKICAgICAgcnMuY2xvc2UoKTsKICAgICAgc3RtdC5jbG9zZSgpOwogICAgICBjb25uLmNsb3NlKCk7CiAgIH1jYXRjaChTUUxFeGNlcHRpb24gc2UpewogICAgICAvL0hhbmRsZSBlcnJvcnMgZm9yIEpEQkMKICAgICAgc2UucHJpbnRTdGFja1RyYWNlKCk7CiAgIH1jYXRjaChFeGNlcHRpb24gZSl7CiAgICAgIC8vSGFuZGxlIGVycm9ycyBmb3IgQ2xhc3MuZm9yTmFtZQogICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICB9ZmluYWxseXsKICAgICAgLy9maW5hbGx5IGJsb2NrIHVzZWQgdG8gY2xvc2UgcmVzb3VyY2VzCiAgICAgIHRyeXsKICAgICAgICAgaWYoc3RtdCE9bnVsbCkKICAgICAgICAgICAgc3RtdC5jbG9zZSgpOwogICAgICB9Y2F0Y2goU1FMRXhjZXB0aW9uIHNlMil7CiAgICAgIH0vLyBub3RoaW5nIHdlIGNhbiBkbwogICAgICB0cnl7CiAgICAgICAgIGlmKGNvbm4hPW51bGwpCiAgICAgICAgICAgIGNvbm4uY2xvc2UoKTsKICAgICAgfWNhdGNoKFNRTEV4Y2VwdGlvbiBzZSl7CiAgICAgICAgIHNlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICB9Ly9lbmQgZmluYWxseSB0cnkKICAgfS8vZW5kIHRyeQogICBTeXN0ZW0ub3V0LnByaW50bG4oIkdvb2RieWUhIik7Cn0vL2VuZCBtYWluCn0vL2VuZCBKREJDRXhhbXBsZQ==