Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ganesh_JavaSE7_Programming_1z0-804_study_guide.pdf
Скачиваний:
94
Добавлен:
02.02.2015
Размер:
5.88 Mб
Скачать

Chapter 10 Building Database Applications with JDBC

(The statement while (resultSet.next()) is missing.)

6.Which of the following two statements are correct regarding RowSets in JDBC?

A.It is possible to use JdbcRowSet as a JavaBeans component.

B.WebRowSet provides result set in the JSON format.

C.The filter in a FilteredRowSet object is set at the time of its creation; a filter cannot be set once the FilteredRowSet object is created.

D.A CachedRowSet object caches data in its memory, which makes it possible to use the CachedRowSet object without always being connected to its data source.

Answer:

A.It is possible to use JdbcRowSet as a JavaBeans component.

D.A CachedRowSet object caches data in its memory, which makes it possible to use the CachedRowSet object without always being connected to its data source.

(Note that B) WebRowSet provides a result set in XML format (not JSON format which is one of the alternatives to XML) and C) The filter in a FilteredRowSet object can be set using the setFilter() method any time).

7.Which of the following interfaces does NOT extend the RowSet interface?

A.JdbcRowSet

B.CachedRowSet

C.WebRowSet

D.TraversalRowSet

E.JoinRowSet

Answer: D) TraversalRowSet

(The interfaces deriving from JdbcRowSet are CachedRowSet, WebRowSet, JoinRowSet, and FilteredRowSet.)

Summary

Define the Layout of the JDBC API

JDBC (Java Database Connectivity) APIs provided by Java are meant for programmatic access to DataBase Management Systems (DBMSs).

JDBC hides all the heterogeneity of all the DBMSs and offers a single set of APIs to interact with all types of databases.

The complexity of heterogeneous interactions is delegated to JDBC driver manager and JDBC drivers; hence all the details and complications are hidden by the JDBC API from the application developer.

313

Chapter 10 Building Database Applications with JDBC

There are four types of drivers:

Type 1 (JDBC-ODBC bridge drivers): JDBC driver calls ODBC (Open Database Connectivity) native calls using the Java Native Interface (JNI).

Type 2 (Native-API drivers): These drivers use client-side libraries of a specific database and convert JDBC calls to native database calls.

Type 3 (Network-protocol drivers): These drivers call database middleware and the middleware actually converts JDBC calls to database-specific native calls.

Type 4 (Native-protocol drivers): The driver directly makes database-specific calls over the network without any support of additional client-side libraries.

Connect to a Database by Using a JDBC driver

The java.sql.Connection interface provides a channel through which the application and the database communicate.

The getConnection() method in the DriverManager class takes three arguments: the URL string, username string, and password string.

The syntax of the URL (which needs to be specified to get the Connection object) is

<protocol>:<subprotocol>://<server>:<port>/. An example of a URL string is jdbc:mysql://localhost:3306/. The <protocol> jdbc is the same for all DBMSs;

<subprotocol> will differ for each DBMS, <server> depends on the location in which you host the database, and each DBMS uses a specific <port> number.

If the JDBC API is not able to locate the JDBC driver, it will throw a SQLException. If there are jars for the drivers available, they need to be included in the classpath to enable the JDBC API to locate the driver.

Prior to JDBC 4.0, you would have to explicitly load the JDBC driver using the Class.forName() statement; with JDBC 4.0 and above, this statement is not needed and the JDBC API will load the driver from the details given in the URL string.

Update and Query a Database

JDBC supports two interfaces for querying and updating: Statement and Resultset.

A Statement is a SQL statement that can be used to communicate a SQL statement to the connected database and receive results from the database. There are three types of Statements:

Statement: You need to use Statement when you need to send a SQL statement to the database without any parameter.

PreparedStatement: Represents a precompiled SQL statement that can be customized using IN parameters.

CallableStatement: Used to execute stored procedures; can handle IN as well as OUT and INOUT parameters.

A ResultSet is a table with column heading and associated values requested by the query.

A ResultSet object maintains a cursor pointing to the current row. Initially, the cursor is set to just before the first row; calling the next() method advances the cursor position by one row.

314

Chapter 10 Building Database Applications with JDBC

The column index in the ResultSet object starts from 1 (not from 0).

You need to call updateRow() after modifying the row contents in a ResultSet; otherwise changes made to the ResultSet object will be lost.

By calling the getMetaData() method in the Connection interface, you can examine the capabilities of the underlying database.

Customize the Transaction Behavior of JDBC and Commit Transactions

A transaction is a set of SQL operations that needs to be either executed all successfully or not at all.

Transaction-related methods are supported in the Connection interface.

By default auto-commit mode is set to true, so all changes you make through the connection are committed automatically to the database.

You can use setAutoCommit(false); to enable manual commits. With auto-commit not enabled, you need to explicitly commit or rollback transactions.

If the commit() method does not execute in manual commit mode, there will be no change in the database.

You can divide a big transaction into multiple milestones. These milestones are referred to as savepoints. This way you may save the changes to a database up to a milestone once the milestone is achieved.

Use the JDBC 4.1 RowSetProvider, RowSetFactory, and RowSet Interfaces

RowSet is a special ResultSet that supports the JavaBean component model.

JdbcRowSet is a connected RowSet while other subinterfaces of RowSet (i.e., JoinRowSet, CachedRowSet, WebRowSet, and FilteredRowSet) are disconnected RowSets.

RowSetProvider provides APIs to get a RowSetFactory implementation, which can in turn be used to instantiate a relevant RowSet implementation.

315

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]