168. JDBC Programming
Version 6.0.1

Book cover

This one-day course covers the fundamentals of database programming in Java using JDBC (Java Database connectivity) in an incremental fashion, to get the programmer up to speed quickly and then to layer a deeper understanding of JDBC upon that foundation. This course has been designed to work with any of these relational database management systems:

  • Apache Derby 10.6
  • Oracle, version 9i, 10g, or 11g

Lab exercises use SQL99 constructs whenever possible in order to be relevant to databases from all vendors.

This revision of the course targets Java 6. For training targeted to earlier Java environments, please see version 4.5.1 and version 5.0 of this course; to read more about different versions of Java and for help deciding on which version of this course to use, see "Java Versions and Terminology Demystified".


  • Experience in Java Programming is essential. The student must be comfortable with object-oriented Java, interfaces and abstract classes. Course 103, "Java Programming," is excellent preparation.
  • Understanding of basic SQL usage or other work with relational databases will be helpful, but is not required.

Learning Objectives

  • Briefly review relational database fundamentals with an awareness of the differences between SQL99 and SQL implementations by database vendors.
  • Connect to a database using JDBC and perform a simple query.
  • Update relational data using JDBC to execute updates, inserts and deletes.
  • Use prepared statements to produce reusable database queries and optimize execution time.
  • Use callable statements to access database procedures.
  • Use scrollable and updatable results sets for more robust solutions.
  • Use commit, rollback, and savepoint to build transactional systems.
  • Use batch processing for efficient handling of large datasets.
  • Understand the use of RowSets and the improved techniques and portability that they bring to JDBC.

Timeline: 1 day.

IDE Support: Eclipse Helios

  • In addition to the primary lab files, an optional overlay is available that adds support for Eclipse Helios. Students can code and build all exercises from within the IDE. See also our orientation to Using Capstone's Eclipse Overlays.

Chapter 1. Database and SQL Fundamentals

  • Relational Databases and SQL
  • SQL Versions and Code Portability
  • Database, Schema, Tables, Columns and Rows
  • DDL -- Creating and Managing Database Objects
  • DML -- Retrieving and Managing Data
  • Sequences
  • Stored Procedures
  • Result Sets and Cursors
  • Using SQL Terminals

Chapter 2. JDBC Fundamentals

  • What is the JDBC API?
  • JDBC Drivers
  • Making a Connection
  • Creating and Executing a Statement
  • Retrieving Values from a ResultSet
  • SQL and Java Datatypes
  • SQL NULL Versus Java null
  • Creating and Updating Tables
  • Handling SQL Exceptions and Proper Cleanup
  • Handling SQLWarning
  • The JDBC 4.0 Cause Facility

Chapter 3. Advanced JDBC

  • SQL Escape Syntax
  • Using Prepared Statements
  • Using Callable Statements
  • Scrollable Result Sets
  • Updatable Result Sets
  • Transactions
  • Commits, Rollbacks, and Savepoints
  • Batch Processing
  • Alternatives to JDBC

Chapter 4. Introduction to Row Sets

  • Row Sets in GUI and J2EE programming
  • Advantages of RowSets
  • RowSet Specializations
  • Using CachedRowSets

Appendix A. Learning Resources

Appendix B. Course Schema

Appendix C. Methods and Types

System Requirements

Hardware Requirements (Minimum) Core 2 Duo 1.5 MHz or equivalent, 1 gig RAM, 1 gig disk space.
Hardware Requirements (Recommended) Core 2 Duo 1.5 MHz or equivalent, 2 gig RAM, 1 gig disk space.
Operating System Tested on Windows XP and Windows 7. Course software should be viable on all systems which support a Java 6 Developer's Kit.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements All free downloadable tools, with an option to use certain commercial products.