Acknowledgments

Part One

1 Introduction

1.1 What the JDBC 2.0 API Includes
1.2 Conventions Used in This Book
1.2.1 Fonts to Indicate Function
1.2.2 Icons to Indicate New Material
1.2.3 Special Page Designations in the Index
1.2.4 SQLException Is Implied in Method Explanations
1.2.5 Some Method Explanations Are Combined
1.3 Contents of the Book
1.3.1 Part One
1.3.2 Part Two
1.3.3 Suggested Order for Reading Chapters
1.3.4 Where to Find Information by Topic
1.3.5 Resources on the Web
1.4 What Is the JDBC API?
1.4.1 What Does the JDBC API Do?
1.4.2 A Base for Other APIs
1.4.3 The JDBC API Versus ODBC and UDA
1.4.4 Two-tier and Three-tier Models
1.4.5 SQL Conformance
1.4.6 JDBC Products
1.4.7 Java Software Framework
1.4.8 JDBC Driver Types
1.4.9 Obtaining JDBC Drivers
1.4.10 Java-relational DBMSs
1.4.11 Other Products
1.5 Java Overview
1.5.1 Java Is Portable
1.5.2 Java Is Object-Oriented
1.5.3 Java Makes It Easy to Write Correct Code
1.5.4 Java Includes a Library of Classes and Interfaces
1.5.5 Java Is Extensible
1.5.6 Java Is Secure
1.5.7 Java Performs Well
1.5.8 Java Scales Well
1.5.9 Java Is Multithreaded
1.6 Relational Database Overview
1.6.1 Integrity Rules
1.6.2 SELECT Statements
1.6.3 WHERE Clauses
1.6.4 Joins
1.6.5 Common SQL Commands
1.6.6 Result Sets and Cursors
1.6.7 Transactions
1.6.8 Stored Procedures
1.6.9 Metadata

2 Basic Tutorial

2.1 Getting Started
2.2 Setting Up a Database
2.3 Establishing a Connection
2.3.1 Loading Drivers
2.3.2 Making the Connection
2.4 Setting Up Tables
2.4.1 Creating a Table
2.4.2 Creating JDBC Statements
2.4.3 Executing Statements
2.4.4 Entering Data into a Table
2.5 Getting Data from a Table
2.6 Retrieving Values from Result Sets
2.6.1 Using the Method next
2.6.2 Using the getXXX Methods
2.6.3 Using the Method getString
2.7 Updating Tables
2.8 Milestone: The Basics of JDBC
2.9 Using Prepared Statements
2.9.1 When to Use a PreparedStatement Object
2.9.2 Creating a PreparedStatement Object
2.9.3 Supplying Values for PreparedStatement Parameters
2.9.4 Using a Loop to Set Values
2.9.5 Return Values for the Method executeUpdate
2.10 Using Joins
2.11 Using Transactions
2.11.1 Disabling Auto-commit Mode
2.11.2 Committing a Transaction
2.11.3 Using Transactions to Preserve Data Integrity
2.11.4 When to Roll Back a Transaction
2.12 Stored Procedures
2.12.1 SQL Statements for Creating a Stored Procedure
2.12.2 Calling a Stored Procedure Using the JDBC API
2.13 Creating Complete JDBC Applications
2.13.1 Putting Code in a Class Definition
2.13.2 Importing Classes to Make Them Visible
2.13.3 Using the main Method
2.13.4 Using try and catch Blocks
2.13.5 Retrieving Exceptions
2.13.6 Retrieving Warnings
2.14 Running the Sample Applications
2.15 Sample Code
2.15.1 Sample Code 1 and 2
2.15.2 Sample Code 3 and 4
2.15.3 Sample Code 5
2.15.4 Sample Code 6
2.16 Creating an Applet from an Application
2.16.1 Writing Applet Code
2.16.2 Running an Applet
2.16.3 Sample Code 7 and 8
2.17 Stored Procedures Using SQLJ and the JDBC API
2.17.1 Creating a Stored Procedure
2.17.2 Installing a Stored Procedure
2.17.3 Declaring a Stored Procedure in SQL

3 Advanced Tutorial

3.1 Getting Set Up to Use the JDBC 2.0 API
3.1.1 Setting Up to Run Code with New Features
3.1.2 Using Code Examples
3.2 Moving the Cursor in Scrollable Result Sets
3.2.1 Creating a Scrollable Result Set
3.2.2 Moving the Cursor Forward and Backward
3.2.3 Moving the Cursor to a Designated Row
3.2.4 Getting the Cursor Position
3.3 Making Updates to Updatable Result Sets
3.3.1 Creating an Updatable Result Set
3.3.2 Updating a Result Set Programmatically
3.3.3 Inserting and Deleting Rows Programmatically
3.3.4 Code Sample for Inserting a Row
3.3.5 Deleting a Row Programmatically
3.3.6 Seeing Changes in Result Sets
3.3.7 Getting the Most Recent Data
3.4 Making Batch Updates
3.4.1 Using Statement Objects for Batch Updates
3.4.2 Batch Update Exceptions
3.4.3 Sample Code for a Batch Update
3.5 SQL3 Data Types
3.5.1 DISTINCT Type
3.5.2 Using SQL3 Data Types
3.5.3 Blob, Clob, and Array Objects
3.5.4 Creating an SQL Structured Type
3.5.5 Creating a DISTINCT Type
3.5.6 Using References to Structured Types
3.5.7 Sample Code for Creating an SQL REF
3.5.8 Using SQL3 Types as Column Values
3.5.9 Inserting SQL3 Types into a Table
3.6 Using Custom Mapping
3.6.1 Implementing SQLData
3.6.2 Using a Connection's Type Map
3.6.3 Using Your Own Type Map
3.7 Using Data Sources
3.7.1 Using a DataSource Object to Get a Connection
3.7.2 Deploying a Basic DataSource Object
3.7.3 Deploying Other DataSource Implementations
3.7.4 Getting and Using a Pooled Connection
3.7.5 Deployment for Distributed Transactions
3.7.6 Using Connections for Distributed Transactions

4 MetaData Tutorial

4.1 Getting Information about Result Set Columns
4.1.1 Using the Method getColumnCount
4.1.2 Sample Code 9
4.1.3 Using Other ResultSetMetaData Methods
4.1.4 Getting Column Type Information
4.1.5 Sample Code 10 and 11
4.1.6 Sample Code 12
4.1.7 Getting Other Information
4.1.8 Using New JDBC 2.0 ResultSetMetaData Features
4.1.9 Getting Other Information about a Result Set
4.2 Getting Information about a Database or Database System
4.2.1 Categories of DatabaseMetaData Methods
4.2.2 Methods that Return a String
4.2.3 Methods that Return an int
4.2.4 Methods that Return a boolean
4.2.5 Methods that Return a ResultSet Object
4.2.6 Sample Code 13
4.2.7 Getting Information about DBMS Data Types
4.2.8 Sample Code 14
4.2.9 Getting Information about Primary and Foreign Keys
4.2.10 Sample Code 15
4.2.11 Sample Code 16
4.2.12 New JDBC 2.0 Core Methods
4.3 Generic Applications
4.3.1 Sample Code 17 and 18
4.3.2 Sample Code 19

5 Rowset Tutorial

5.1 Types and Uses of Rowsets
5.2 Using a Rowset
5.2.1 Creating a Rowset and Setting Properties
5.2.2 Rowsets and Event Notification
5.2.3 Obtaining a Scrollable and Updatable Rowset
5.2.4 Using a Rowset for Scrolling and Updating
5.2.5 Updating a Rowset
5.3 An EJB Example
5.3.1 A Distributed Application
5.3.2 Differences in Rowsets
5.3.3 EJB and Distributed Transactions
5.3.4 A Stateless SessionBean Object
5.3.5 Overview of an EJB Application
5.3.6 The Remote Interface
5.3.7 The Home Interface
5.3.8 The Client Class
5.3.9 The Enterprise Bean

Part Two

6 Array

6.1 Array Overview
6.1.1 Creating an Array Object
6.1.2 Getting Base Type Information
6.1.3 Materializing Array Data
6.1.4 Four Versions of the Method getArray
6.1.5 Four Versions of the Method getResultSet
6.1.6 Using Array Methods
6.1.7 Storing Array Objects
6.2 Array Interface Definition
6.3 Array Methods

7 BatchUpdateException

7.1 BatchUpdateException Overview
7.1.1 What a BatchUpdateException Object Contains
7.1.2 Retrieving BatchUpdateException Information
7.2 BatchUpdateException Class Definition
7.3 BatchUpdateException Constructors
7.4 BatchUpdateException Methods
7.4.1 Inherited Methods
7.4.2 Methods Defined in BatchUpdateException

8 Blob

8.1 Blob Overview
8.1.1 Creating a Blob Object
8.1.2 Materializing Blob Data
8.1.3 Storing a Blob Object
8.2 Blob Interface Definition
8.3 Blob Methods

9 CallableStatement

9.1 CallableStatement Overview
9.1.1 Creating a CallableStatement Object
9.1.2 IN Parameters
9.1.3 Making Batch Updates
9.1.4 OUT Parameters
9.1.5 Numbering of Parameters
9.1.6 INOUT Parameters
9.1.7 Retrieve OUT Parameters after Results
9.1.8 Retrieving NULL Values as OUT Parameters
9.2 CallableStatement Definition
9.3 CallableStatement Methods
9.3.1 Inherited Methods
9.3.2 Methods Defined in CallableStatement

10 Clob

10.1 Clob Overview
10.1.1 Creating a Clob Object
10.1.2 Materializing Clob Data
10.1.3 Storing a Clob Object
10.2 Clob Interface Definition
10.3 Clob Methods

11 Connection

11.1 Connection Overview
11.1.1 Opening a Connection
11.1.2 URLs in General Use
11.1.3 JDBC URLs
11.1.4 The odbc Subprotocol
11.1.5 Registering Subprotocols
11.1.6 Sending SQL Statements
11.1.7 Transactions
11.1.8 Transaction Isolation Levels
11.1.9 Freeing DBMS Resources
11.1.10 Using Type Maps
11.2 Connection Interface Definition
11.3 Connection Methods
11.4 Connection Fields

12 ConnectionEvent

12.1 ConnectionEvent Overview
12.2 ConnectionEvent Interface Definition
12.3 ConnectionEvent Constructors
12.4 ConnectionEvent Methods
12.4.1 Methods Inherited from java.util.EventObject
12.4.2 Methods Defined in javax.sql.ConnectionEvent

13 ConnectionEventListener

13.1 ConnectionEventListener Overview
13.1.1 Methods for Event Notification
13.1.2 Registering a ConnectionEventListener Object
13.2 ConnectionEventListener Interface Definition
13.3 ConnectionEventListener Methods

14 ConnectionPoolDataSource

14.1 ConnectionPoolDataSource Overview
14.1.1 Connection vs. PooledConnection Objects
14.2 ConnectionPoolDataSource Interface Definition
14.3 ConnectionPoolDataSource Methods

15 DatabaseMetaData

15.1 DatabaseMetaData Overview
15.1.1 Creating a DatabaseMetaData Object
15.1.2 ResultSet Objects as Return Values
15.1.3 String Patterns as Arguments
15.1.4 Pseudo Columns
15.1.5 New JDBC 2.0 Core API Features
15.1.6 Getting Advanced Type Information
15.2 DatabaseMetaData Interface Definition
15.3 DatabaseMetaData Methods
15.4 DatabaseMetaData Fields

16 DataSource

16.1 DataSource Overview
16.1.1 Properties
16.1.2 Using JNDI
16.1.3 Creating and Registering a DataSource Object
16.1.4 Connecting to a Data Source
16.1.5 DataSource Implementations
16.1.6 Logging and Tracing
16.1.7 Advantages of Using JNDI
16.2 DataSource Interface Definition
16.3 DataSource Methods

17 DataTruncation

17.1 DataTruncation Overview
17.1.1 Data Truncation with No Warning or Exception
17.1.2 Data Truncation on Reads
17.1.3 Data Truncation on Writes
17.1.4 What a DataTruncation Object Contains
17.1.5 Retrieving DataTruncation Information
17.2 DataTruncation Class Definition
17.3 DataTruncation Constructor
17.4 DataTruncation Methods
17.4.1 Inherited Methods
17.4.2 Methods Defined in DataTruncation

18 Date

18.1 Date Overview
18.1.1 Creating a Date Object
18.1.2 Deprecated Methods
18.1.3 Retrieving a Date Object
18.1.4 Advanced Features
18.2 Date Class Definition
18.3 Date Constructors
18.4 Date Methods
18.4.1 Inherited Methods
18.4.2 Methods Defined in Date

19 Distinct Types

19.1 Distinct Types Overview
19.1.1 Creating a Distinct Type Object
19.1.2 Storing Distinct Objects
19.1.3 Using Distinct Data Types
19.1.4 Custom Mapping of Distinct Types

20 Driver

20.1 Driver Overview
20.1.1 Loading and Registering a Driver
20.1.2 JDBC Implementation Alternatives
20.2 Driver Interface Definition
20.3 Driver Methods

21 DriverManager

21.1 DriverManager Overview
21.1.1 Keeping Track of Available Drivers
21.1.2 Establishing a Connection
21.1.3 DriverManager Methods Are Static
21.2 DriverManager Class Definition
21.3 DriverManager Methods

22 DriverPropertyInfo

22.1 DriverPropertyInfo Overview
22.1.1 Creating a DriverPropertyInfo Object
22.1.2 Getting and Setting Fields
22.2 DriverPropertyInfo Class Definition
22.3 DriverPropertyInfo Constructor
22.4 DriverPropertyInfo Fields

23 PooledConnection

23.1 PooledConnection Overview
23.1.1 Application Code for Connection Pooling
23.1.2 How Connection Pooling Works
23.1.3 The Life Cycle of a PooledConnection Object
23.2 PooledConnection Interface Definition
23.3 PooledConnection Methods

24 PreparedStatement

24.1 PreparedStatement Overview
24.1.1 Creating PreparedStatement Objects
24.1.2 Passing IN Parameters
24.1.3 Data Type Conformance on IN Parameters
24.1.4 Using setObject
24.1.5 Sending JDBC NULL as an IN parameter
24.1.6 Sending Very Large IN Parameters
24.1.7 Using PreparedStatement Objects in Batch Updates
24.2 PreparedStatement Interface Definition
24.3 PreparedStatement Methods
24.3.1 Methods Inherited from Statement
24.3.2 Methods Defined in PreparedStatement

25 Ref

25.1 Ref Overview
25.1.1 Creating an SQL Reference
25.1.2 Creating a Ref Object
25.1.3 Storing a Ref Object
25.1.4 Dereferencing a Ref Object
25.2 Ref Interface Definition
25.3 Ref Methods

26 ResultSet

26.1 ResultSet Overview
26.1.1 Rows and Columns
26.1.2 Cursors
26.1.3 Cursor Movement Examples
26.1.4 Determining the Number of Rows in a Result Set
26.1.5 Retrieving Column Values
26.1.6 Which getXXX Method to Use
26.1.7 Types of Result Sets
26.1.8 Concurrency Types
26.1.9 Providing Performance Hints
26.1.10 Creating Different Types of Result Sets
26.1.11 Using a Prepared Statement to Create Result Sets
26.1.12 Requesting Features That Are Not Supported
26.1.13 Using updateXXX Methods
26.1.14 Deleting a Row
26.1.15 Inserting Rows
26.1.16 Positioned Updates
26.1.17 Queries That Produce Updatable Result Sets
26.1.18 What Is Visible to Transactions
26.1.19 Visibility of Changes Made by Others
26.1.20 Visibility of a Result Set's Own Changes
26.1.21 Detecting Changes
26.1.22 Refetching a Row
26.1.23 Using Streams for Very Large Row Values
26.1.24 NULL Result Values
26.1.25 Optional or Multiple Result Sets
26.1.26 Closing a ResultSet Object
26.1.27 JDBC Compliance
26.2 ResultSet Interface Definition
26.3 ResultSet Methods
26.4 ResultSet Fields

27 ResultSetMetaData

27.1 ResultSetMetaData Overview
27.1.1 Creating a ResultSetMetaData Object
27.1.2 Using ResultSetMetaData
27.2 ResultSetMetaData Interface Definition
27.3 ResultSetMetaData Methods
27.4 ResultSetMetaData Fields

28 RowSet

28.1 RowSet Overview
28.1.1 The Event Model for Rowsets
28.1.2 Properties for a Rowset
28.1.3 Setting Parameters for the Command String
28.1.4 Traversing a RowSet Object
28.1.5 Executing a Command
28.1.6 Using a RowSet Object's Metadata
28.2 An Example Implementation
28.2.1 Overview of CachedRowSet
28.2.2 Uses for a CachedRowSet Object
28.2.3 Sample CachedRowSet Definition
28.2.4 Creating a CachedRowSet Object
28.2.5 Populating a CachedRowSet Object
28.2.6 Accessing Data
28.2.7 Modifying Data
28.2.8 Customizing Readers and Writers
28.2.9 Other Methods
28.3 Other Possible Implementations
28.3.1 JDBCRowSet Class
28.3.2 The WebRowSet Class
28.4 RowSet Interface Definition
28.5 RowSet Methods
28.5.1 Methods Inherited from ResultSet
28.5.2 Methods Defined in RowSet
28.6 RowSet Fields

29 RowSetEvent

29.1 RowSetEvent Overview
29.1.1 RowSet Events
29.1.2 Creating a RowSetEvent Object
29.2 RowSetEvent Interface Definition
29.3 RowSetEvent Constructor
29.4 RowSetEvent Methods

30 RowSetInternal

30.1 RowSetInternal Overview
30.2 RowSetInternal Interface Definition
30.3 RowSetInternal Methods

31 RowSetListener

31.1 RowSetListener Overview
31.1.1 Registering and Deregistering a Listener
31.1.2 Using RowSetListener Methods
31.2 RowSetListener Interface Definition
31.3 RowSetListener Methods

32 RowSetMetaData

32.1 RowSetMetaData Overview
32.2 RowSetMetaData Interface Definition
32.3 RowSetMetaData Methods
32.3.1 Methods Inherited from ResultSetMetaData
32.3.2 Methods Defined in RowSetMetaData
32.4 RowSetMetaData Fields

33 RowSetReader

33.1 RowSetReader Overview
33.1.1 The Reader/Writer Framework
33.1.2 Reading Data for a Disconnected Rowset
33.2 RowSetReader Interface Definition
33.3 RowSetReader Methods

34 RowSetWriter

34.1 RowSetWriter Overview
34.2 RowSetWriter Interface Definition
34.3 RowSetWriter Methods

35 SQLData

35.1 SQLData Overview
35.1.1 Creating a Custom Mapping
35.1.2 How SQLData Retrieves an Object
35.1.3 How SQLData Is Used to Store an Object
35.2 SQLData Interface Definition
35.3 SQLData Methods

36 SQLException

36.1 SQLException Overview
36.1.1 What an SQLException Object Contains
36.1.2 Retrieving SQLException Information
36.1.3 What an SQLException Means
36.2 SQLException Class Definition
36.3 SQLException Constructors
36.4 SQLException Methods
36.4.1 Inherited Methods
36.4.2 Methods Defined in SQLException

37 SQLInput

37.1 SQLInput Overview
37.1.1 Creating an SQLInput Object
37.1.2 Using readXXX Methods
37.2 SQLInput Interface Definition
37.3 SQLInput Methods

38 SQLOutput

38.1 SQLOutput Overview
38.2 SQLOutput Interface Definition
38.3 SQLOutput Methods

39 SQLWarning

39.1 SQLWarning Overview
39.1.1 What an SQLWarning Object Contains
39.1.2 Retrieving SQLWarning Information
39.2 SQLWarning Class Definition
39.3 SQLWarning Constructors
39.4 SQLWarning Methods
39.4.1 Inherited Methods
39.4.2 Methods Defined in SQLWarning

40 Statement

40.1 Statement Overview
40.1.1 Creating Statement Objects
40.1.2 Executing Statements Using Statement Objects
40.1.3 Statement Completion
40.1.4 Closing Statements
40.1.5 SQL Escape Syntax in Statements
40.1.6 Sending Batch Updates
40.1.7 Giving Performance Hints
40.1.8 Executing Special Kinds of Statements
40.2 Statement Interface Definition
40.3 Statement Methods

41 Struct

41.1 Struct Overview
41.1.1 Creating an SQL Structured Type
41.1.2 Storing Referenceable Instances of a Structured Type
41.1.3 Creating a Struct Object
41.1.4 Mapping SQL Inheritance
41.1.5 Ordering of Attributes
41.1.6 Storing a Struct Object
41.2 Struct Interface Definition
41.3 Struct Methods

42 Time

42.1 Time Overview
42.1.1 Creating a Time Object
42.1.2 Deprecated Methods
42.1.3 Retrieving a Time Object
42.1.4 Advanced Features
42.2 Time Class Definition
42.3 Time Constructors
42.4 Time Methods

43 Timestamp

43.1 Timestamp Overview
43.1.1 Creating a Timestamp Object
43.1.2 Retrieving a Timestamp Object
43.1.3 Advanced Features
43.2 Timestamp Class Definition
43.3 Timestamp Constructors
43.4 Timestamp Methods

44 Types

44.1 Overview of Class Types
44.1.1 Using the Constants in Class Types
44.1.2 Using the Constant OTHER
44.1.3 JDBC Types Added in the JDBC 2.0 Core API
44.2 Types Class Definition

45 XAConnection

45.1 XAConnection Overview
45.1.1 Application Code in Distributed Transactions
45.1.2 Distributed Transaction Requirements
45.1.3 Creating an XAConnection Object
45.1.4 What an XAResource Object Does
45.1.5 How the Two-phase Commit Protocol Works
45.1.6 Using an XAResource Object to Commit
45.1.7 The XAResource Interface
45.1.8 Steps in a Distributed Transaction
45.1.9 Distributed Transactions and EJB
45.2 XAConnection Interface Definition
45.3 XAConnection Methods
45.3.1 Methods Inherited from javax.sql.PooledConnection
45.3.2 Methods Defined in XAConnection

46 XADataSource

46.1 XADataSource Overview
46.1.1 Obtaining an XADataSource Object
46.1.2 XADataSource Objects and Resource Managers
46.2 XADataSource Interface Definition
46.3 XADataSource Methods

47 Mapping SQL and Java Types

47.1 Mapping Overview
47.2 Mapping SQL Types to Java Types
47.3 Basic JDBC Types
47.3.1 CHAR, VARCHAR, and LONGVARCHAR
47.3.2 BINARY, VARBINARY, and LONGVARBINARY
47.3.3 BIT
47.3.4 TINYINT
47.3.5 SMALLINT
47.3.6 INTEGER
47.3.7 BIGINT
47.3.8 REAL
47.3.9 DOUBLE
47.3.10 FLOAT
47.3.11 DECIMAL and NUMERIC
47.3.12 DATE, TIME, and TIMESTAMP
47.4 Advanced JDBC Data Types
47.4.1 BLOB
47.4.2 CLOB
47.4.3 ARRAY
47.4.4 DISTINCT
47.4.5 STRUCT
47.4.6 REF
47.4.7 JAVA_OBJECT
47.5 Examples of Mapping
47.5.1 Simple SQL Statement
47.5.2 SQL Statement with IN Parameters
47.5.3 SQL Statement with INOUT Parameters
47.6 Custom Mapping
47.7 Dynamic Data Access
47.8 Storing Java Objects in a Database
47.9 Tables for Type Mapping
47.9.1 JDBC Types Mapped to Java Types
47.9.2 Java Types Mapped to JDBC Types
47.9.3 JDBC Types Mapped to Java Object Types
47.9.4 Java Object Types Mapped to JDBC Types
47.9.5 Conversions by setObject
47.9.6 Conversions by ResultSet.getXXX Methods
47.9.7 JDBC Types Mapped to Database-specific SQL Types

Appendix A: For Driver Writers

A.1 Requirements for All Drivers
A.1.1 Implement Methods in the Interfaces
A.1.2 Implement a Static Initializer
A.1.3 Support Extensions to SQL-92 Entry Level
A.1.4 Support Scalar Functions
A.1.5 Provide Locks for Positioned Updates and Deletes
A.1.6 Support Multithreading
A.1.7 Throw Exceptions for Truncated Input Parameters
A.1.8 Use Default Behaviors for SQL3 Data Types
A.2 Permitted Variants
A.2.1 When Functionality Is Not Supported
A.2.2 Variation in Fundamental Properties
A.2.3 Adding Functionality
A.3 Security Responsibilities of Drivers
A.3.1 Check Shared TCP Connections
A.3.2 Check All Local File Access
A.3.3 Assume the Worst
A.4 Use SQLException for Exceptions
A.5 Suggested Implementations
A.5.1 Prefetch Rows
A.5.2 Provide "Finalize" Methods for Applets
A.5.3 Avoid Implementation-dependent States

Appendix B: Summary of Changes

B.1 Overview of JDBC 2.0 Core API Changes
B.2 Summary of New Functionality
B.2.1 Scrollable Result Sets
B.2.2 Batch Updates
B.2.3 Programmatic Updates
B.2.4 Other New Features
B.3 Support for Advanced Data Types
B.3.1 What Are the SQL3 Data Types?
B.3.2 Summary of Support for the SQL3 Data Types
B.3.3 Mapping of the New SQL3 Types
B.3.4 SQL Locators
B.3.5 Support for Storing Java Objects
B.4 Complete List of Core API Changes
B.4.1 What Did Not Change
B.4.2 Additions to Existing Interfaces and Classes
B.4.3 Deprecated Methods and Constructors
B.4.4 New Interfaces, Classes, and Exceptions
B.5 JDBC Standard Extension Features
B.5.1 JNDI
B.5.2 Connection Pooling
B.5.3 Support for Distributed Transactions
B.5.4 Rowsets
B.6 Complete List of Standard Extension API
B.7 Post JDBC 1.0 API Changes
B.7.1 Numeric to Bignum to BigDecimal
B.7.2 AutoClose Mode Dropped
B.8 Early Design Decisions
B.8.1 ResultSet.getXXX Methods
B.8.2 PreparedStatement.setXXX Methods
B.8.3 CallableStatement.registerOutParameter Method
B.8.4 Support for Large OUT Parameters
B.8.5 isNull versus wasNull
B.8.6 Java Type Names or JDBC Type Names
B.9 Where to Send Suggestions

Glossary

Index



jdbc-book@sun.com
Copyright © 1999, Sun Microsystems, Inc. All rights reserved.