168. JDBC Programming Version 6.0.1 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". Prerequisites * 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, 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 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, Minimum: Core 2 Duo 1.5 MHz or equivalent, 1 gig RAM, 1 gig disk space. Hardware, 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 at http://capcourse.com/Guides/Security.gen.html. Software Requirements: All free downloadable tools, with an option to use certain commercial products.