168. JDBC Programming
Version 5.0

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, version 10.1
  • MySQL, version 4.1
  • PostgreSQL 8.0
  • Oracle, version 9i or 10g

Lab exercises use SQL99 constructs whenever possible in order to be relevant to databases from all vendors. The course software also includes an optional overlay of workspace and project files to support use of the Eclipse IDE in the classroom. (This requires that the instructor be experienced in use of Eclipse and able to walk students through basic tasks in the IDE.)

This revision of the course targets the 5.0 version of the Java language and Core API, though the impact of choosing a 1.4.x or 5.0 Java environment is minimal for this level of JDBC study. For training targeted to the 1.4 environment, please see version 4.5.1 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 3.2

  • In addition to the primary lab files, an optional overlay is available that adds support for Eclipse 3.2. Students can code and build all exercises from within the IDE. Most exercises can be tested from within the IDE as well, though some must be tested from the command line. See also our orientation to Using Capstone's Eclipse Overlays, and please be advised that this is an optional feature; it is not a separate version of the course, and the course itself does not contain explicit Eclipse-specific lab instructions.

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

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) 500 MHz, 256 meg RAM, 500 meg disk space.
Hardware Requirements (Recommended) 1.5 GHz, 512 meg RAM, 1 gig disk space.
Operating System Tested on Windows XP Professional. Course software should be viable on all systems which support a J2SE 5.0 JDK.
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.