|
Technical Interview Questions
Javascript Interview Questions
Oracle Interview Questions
J2EE Interview Questions
C++
Interview Questions
XML
Interview Questions
EJB
Interview Questions
JSP
Interview Questions
.........More
Programming Source Codes
Java Source Codes
Html Source Codes
CSS Source Codes
C Source Codes
.........More
Soft Skills
Communication Skills
Leadership Skills
.........More
|
|
JDBC Interview Questions and Answers
What is JDBC?
JDBC may stand for Java Database Connectivity. It is
also a trade mark. JDBC is a layer of abstraction that
allows users to choose between databases. It allows you
to change to a different database engine and to write to
a single API. JDBC allows you to write database
applications in Java without having to concern yourself
with the underlying details of a particular database.
What's the JDBC 3.0 API?
The JDBC 3.0 API is the latest update of the JDBC API.
It contains many features, including scrollable result
sets and the SQL:1999 data types.
JDBC (Java Database Connectivity) is the standard for
communication between a Java application and a
relational database. The JDBC API is released in two
versions; JDBC version 1.22 (released with JDK 1.1.X in
package java.sql) and version 2.0 (released with Java
platform 2 in packages java.sql and javax.sql). It is a
simple and powerful largely database-independent way of
extracting and inserting data to or from any database.
Does the JDBC-ODBC Bridge support the new features in
the JDBC 3.0 API?
The JDBC-ODBC Bridge provides a limited subset of the
JDBC 3.0 API.
Can the JDBC-ODBC Bridge be used with applets?
Use of the JDBC-ODBC bridge from an untrusted applet
running in a browser, such as Netscape Navigator, isn't
allowed. The JDBC-ODBC bridge doesn't allow untrusted
code to call it for security reasons. This is good
because it means that an untrusted applet that is
downloaded by the browser can't circumvent Java security
by calling ODBC. Remember that ODBC is native code, so
once ODBC is called the Java programming language can't
guarantee that a security violation won't occur. On the
other hand, Pure Java JDBC drivers work well with
applets. They are fully downloadable and do not require
any client-side configuration.
Finally, we would like to note that it is possible to
use the JDBC-ODBC bridge with applets that will be run
in appletviewer since appletviewer assumes that applets
are trusted. In general, it is dangerous to turn applet
security off, but it may be appropriate in certain
controlled situations, such as for applets that will
only be used in a secure intranet environment. Remember
to exercise caution if you choose this option, and use
an all-Java JDBC driver whenever possible to avoid
security problems.
How do I start debugging problems related to the JDBC
API?
A good way to find out what JDBC calls are doing is to
enable JDBC tracing. The JDBC trace contains a detailed
listing of the activity occurring in the system that is
related to JDBC operations.
If you use the DriverManager facility to establish your
database connection, you use the
DriverManager.setLogWriter method to enable tracing of
JDBC operations. If you use a DataSource object to get a
connection, you use the DataSource.setLogWriter method
to enable tracing. (For pooled connections, you use the
ConnectionPoolDataSource.setLogWriter method, and for
connections that can participate in distributed
transactions, you use the XADataSource.setLogWriter
method.)
What is new in JDBC 2.0?
With the JDBC 2.0 API, you will be able to do the
following:
Scroll forward and backward in a result set or move to a
specific row (TYPE_SCROLL_SENSITIVE,previous(), last(),
absolute(), relative(), etc.)
Make updates to database tables using methods in the
Java programming language instead of using SQL
commands.(updateRow(), insertRow(), deleteRow(), etc.)
Send multiple SQL statements to the database as a unit,
or batch (addBatch(), executeBatch())
Use the new SQL3 datatypes as column values like Blob,
Clob, Array, Struct, Ref.
How to move the cursor in scrollable
resultset ?
a. create a scrollable ResultSet object.
Statement stmt =
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("SELECT COLUMN_1,
COLUMN_2 FROM TABLE_NAME");
b. use a built in methods like afterLast(), previous(),
beforeFirst(), etc. to scroll the resultset.
srs.afterLast();
while (srs.previous()) {
String name = srs.getString("COLUMN_1");
float salary = srs.getFloat("COLUMN_2");
//...
c. to find a specific row, use absolute(), relative()
methods.
srs.absolute(4); // cursor is on the fourth row
int rowNum = srs.getRow(); // rowNum should be 4
srs.relative(-3);
int rowNum = srs.getRow(); // rowNum should be 1
srs.relative(2);
int rowNum = srs.getRow(); // rowNum should be 3
d. use isFirst(), isLast(), isBeforeFirst(), isAfterLast()
methods to check boundary status.
How to update a resultset programmatically?
a. create a scrollable and updatable ResultSet object.
Statement stmt = con.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet uprs = stmt.executeQuery("SELECT COLUMN_1,
COLUMN_2 FROM TABLE_NAME");
b. move the cursor to the specific position and use
related method to update data and then, call updateRow()
method.
uprs.last();
uprs.updateFloat("COLUMN_2", 25.55);//update last row's
data
uprs.updateRow();//don't miss this method, otherwise,
// the data will be lost.
How can I use the JDBC API to access a desktop database
like Microsoft Access over the network?
Most desktop databases currently require a JDBC solution
that uses ODBC underneath. This is because the vendors
of these database products haven't implemented all-Java
JDBC drivers.
The best approach is to use a commercial JDBC driver
that supports ODBC and the database you want to use. See
the JDBC drivers page for a list of available JDBC
drivers.
The JDBC-ODBC bridge from Sun's Java Software does not
provide network access to desktop databases by itself.
The JDBC-ODBC bridge loads ODBC as a local DLL, and
typical ODBC drivers for desktop databases like Access
aren't networked. The JDBC-ODBC bridge can be used
together with the RMI-JDBC bridge, however, to access a
desktop database like Access over the net. This
RMI-JDBC-ODBC solution is free.
Are there any ODBC drivers that do not work with the
JDBC-ODBC Bridge?
Most ODBC 2.0 drivers should work with the Bridge. Since
there is some variation in functionality between ODBC
drivers, the functionality of the bridge may be
affected. The bridge works with popular PC databases,
such as Microsoft Access and FoxPro.
What causes the "No suitable driver" error?
"No suitable driver" is an error that usually occurs
during a call to the DriverManager.getConnection method.
The cause can be failing to load the appropriate JDBC
drivers before calling the getConnection method, or it
can be specifying an invalid JDBC URL--one that isn't
recognized by your JDBC driver. Your best bet is to
check the documentation for your JDBC driver or contact
your JDBC driver vendor if you suspect that the URL you
are specifying is not being recognized by your JDBC
driver.
In addition, when you are using the JDBC-ODBC Bridge,
this error can occur if one or more the the shared
libraries needed by the Bridge cannot be loaded. If you
think this is the cause, check your configuration to be
sure that the shared libraries are accessible to the
Bridge.
Why isn't the java.sql.DriverManager class being found?
This problem can be caused by running a JDBC applet in a
browser that supports the JDK 1.0.2, such as Netscape
Navigator 3.0. The JDK 1.0.2 does not contain the JDBC
API, so the DriverManager class typically isn't found by
the Java virtual machine running in the browser.
Here's a solution that doesn't require any additional
configuration of your web clients. Remember that classes
in the java.* packages cannot be downloaded by most
browsers for security reasons. Because of this, many
vendors of all-Java JDBC drivers supply versions of the
java.sql.* classes that have been renamed to jdbc.sql.*,
along with a version of their driver that uses these
modified classes. If you import jdbc.sql.* in your
applet code instead of java.sql.*, and add the jdbc.sql.*
classes provided by your JDBC driver vendor to your
applet's codebase, then all of the JDBC classes needed
by the applet can be downloaded by the browser at run
time, including the DriverManager class.
This solution will allow your applet to work in any
client browser that supports the JDK 1.0.2. Your applet
will also work in browsers that support the JDK 1.1,
although you may want to switch to the JDK 1.1 classes
for performance reasons. Also, keep in mind that the
solution outlined here is just an example and that other
solutions are possible.
Page Numbers :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
Java Interview
Questions for more Java Interview Questions with answers
Check
Structs Interview
Questions for more Structs Interview Questions with answers
Check
Servlet Interview
Questions for more Servlet Interview Questions with answers
|