Set - 4

Question 16 :

What is a JDBC 2.0 DataSource?

Answer :

The DataSource class was introduced in the JDBC 2.0 Optional Package as an easier, more generic means of obtaining a Connection. The actual driver providing services is defined to the DataSource outside the application ( Of course, a production quality app can and should provide this information outside the app anyway, usually with properties files or ResourceBundles ). The documentation expresses the view that DataSource will replace the common DriverManager method.


Question 17 :

Does the database server have to be running Java or have Java support in order for my remote JDBC client app to access the database?

Answer :

The answer should always be no. The two critical requirements are LAN/internet connectivity and an appropriate JDBC driver. Connectivity is usually via TCP/IP, but other communication protocols are possible. Unspoken, but assumed here is that the DBMS has been started to listen on a communications port. It is the JDBC driver's job to convert the SQL statements and JDBC calls to the DBMS' native protocol. From the server's point of view, it's just another data request coming into the port, the programming language used to send the data is irrelevant at that point.


Question 18 :

Which Java and java.sql data types map to my specific database types?

Answer :

JDBC is, of necessity, reliant on the driver and underlying DBMS. These do not always adhere to standards as closely as we would like, including differing names for standard Java types. To deal with this, first, there are a number of tables available in the JDK JDBC documentation dealing with types.


Question 19 :

Are the code examples from the JDBC API Tutorial and Reference, Second Edition available online?

Answer :

Yes.


Question 20 :

When an SQL select statement doesn't return any rows, is an SQLException thrown?

Answer :

No. If you want to throw an exception, you could wrap your SQL related code in a custom class and throw something like ObjectNotFoundException when the returned ResultSet is empty.