1.What is the JDBC?
Java Database Connectivity (JDBC)
is a standard Java API to interact with relational databases form Java. JDBC
has set of classes and interfaces which can use from Java application and talk
to database without learning RDBMS details and using Database Specific JDBC
Drivers.
2.What are the new features added to JDBC 4.0?
The major features added in JDBC 4.0 include
:
- Auto-loading of JDBC driver class
- Connection management enhancements
- Support
for
RowId
SQL type - DataSet implementation of SQL using Annotations
- SQL exception handling enhancements
- SQL XML support
3.Explain Basic Steps in writing a Java program using JDBC?
JDBC makes the interaction with RDBMS simple
and intuitive. When a Java application needs to access database :
- Load the RDBMS specific JDBC driver because this driver actually communicates with the database (Incase of JDBC 4.0 this is automatically loaded).
- Open the connection to database which is then used to send SQL statements and get results back.
- Create JDBC Statement object. This object contains SQL query.
- Execute statement which returns resultset(s). ResultSet contains the tuples of database table as a result of SQL query.
- Process the result set.
- Close the connection.
4.Exaplain the JDBC Architecture.
The JDBC Architecture consists of two layers:
- The JDBC API, which provides the application-to-JDBC Manager connection.
- The JDBC Driver API, which supports the JDBC Manager-to-Driver Connection.
The JDBC API uses a driver manager and
database-specific drivers to provide transparent connectivity to heterogeneous
databases. The JDBC driver manager ensures that the correct driver is used to
access each data source. The driver manager is capable of supporting multiple
concurrent drivers connected to multiple heterogeneous databases. The location
of the driver manager with respect to the JDBC drivers and the Java application
is shown in Figure 1.

Figure
1: JDBC Architecture
5.What are the main components of JDBC ?
The life cycle of a servlet consists of the following
phases:
- DriverManager: Manages a list of database drivers. Matches connection requests from the java application with the proper database driver using communication subprotocol. The first driver that recognizes a certain subprotocol under JDBC will be used to establish a database Connection.
- Driver: The database communications link, handling all communication with the database. Normally, once the driver is loaded, the developer need not call it explicitly.
- Connection : Interface with all methods for contacting a database.The connection object represents communication context, i.e., all communication with database is through connection object only.
- Statement : Encapsulates an SQL statement which is passed to the database to be parsed, compiled, planned and executed.
- ResultSet: The ResultSet represents set of rows retrieved due to query execution.
6.How the JDBC application works?
A JDBC application can be logically divided
into two layers:
1. Driver layer
2. Application layer
- Driver layer consists of DriverManager class and the available JDBC drivers.
- The application begins with requesting the DriverManager for the connection.
- An appropriate driver is choosen and is used for establishing the connection. This connection is given to the application which falls under the application layer.
- The application uses this connection to create Statement kind of objects, through which SQL commands are sent to backend and obtain the results.

Figure
2: JDBC Application
7.How do I load a database driver with JDBC 4.0 / Java 6?
Provided the JAR file containing the driver
is properly configured, just place the JAR file in the classpath. Java
developers NO longer need to explicitly load JDBC drivers
using code like
Class.forName()
to register a JDBC driver.The DriverManager class takes care of
this by automatically locating a suitable driver when the DriverManager.getConnection()
method is called. This feature is backward-compatible, so no
changes are needed to the existing JDBC code.8.What is JDBC Driver interface?
The JDBC Driver interface provides
vendor-specific implementations of the abstract classes provided by the JDBC
API. Each vendor driver must provide implementations of the
java.sql.Connection,Statement,PreparedStatement,
CallableStatement, ResultSet
and Driver
.9.What does the connection object represents?
The connection object represents
communication context, i.e., all communication with database is through
connection object only.
10.What is Statement ?
Statement acts like a vehicle through which
SQL commands can be sent. Through the connection object we create statement
kind of objects.
Through the connection object we create statement kind of objects.
Through the connection object we create statement kind of objects.
Statement stmt = conn.createStatement();
This method returns object which implements
statement interface.
11.What is PreparedStatement?
A prepared statement is an SQL statement that
is precompiled by the database. Through precompilation, prepared statements
improve the performance of SQL commands that are executed multiple times (given
that the database supports prepared statements). Once compiled, prepared
statements can be customized prior to each execution by altering predefined SQL
parameters.
PreparedStatement pstmt = conn.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00);
pstmt.setInt(2, 110592);
Here:
conn
is an instance of the Connection class and "
?"
represents parameters.These parameters must be specified before
execution.
12.What is the difference between a Statement and a PreparedStatement?
Statement
|
PreparedStatement
|
A standard Statement is used to create a
Java representation of a literal SQL statement and execute it on the
database.
|
A PreparedStatement is a
precompiled statement. This means that when the PreparedStatement is
executed, the RDBMS can just run the PreparedStatement SQL statement without
having to compile it first.
|
Statement has to verify its metadata
against the database every time.
|
While a prepared statement has to verify
its metadata against the database only once.
|
If you want to execute the SQL statement
once go for STATEMENT
|
If you want to execute a single SQL
statement multiple number of times, then go for PREPAREDSTATEMENT. PreparedStatement
objects can be reused with passing different values to the queries
|
13.What are callable statements ?
Callable statements are used from JDBC
application to invoke stored procedures and functions.
14.How to call a stored procedure from JDBC ?
PL/SQL stored procedures are called from
within JDBC programs by means of the prepareCall() method of the Connection
object created. A call to this method takes variable bind parameters as input
parameters as well as output variables and creates an object instance of the
CallableStatement class.
The following line of code illustrates this:
CallableStatement stproc_stmt = conn.prepareCall("{call procname(?,?,?)}");
Here conn is an instance of the Connection
class.
15.What are types of JDBC drivers?
There are four types of drivers defined by
JDBC as follows:
- Type 1: JDBC/ODBC—These require an ODBC (Open Database Connectivity) driver for the database to be installed. This type of driver works by translating the submitted queries into equivalent ODBC queries and forwards them via native API calls directly to the ODBC driver. It provides no host redirection capability.
- Type2: Native API (partly-Java driver)—This type of driver uses a vendor-specific driver or database API to interact with the database. An example of such an API is Oracle OCI (Oracle Call Interface). It also provides no host redirection.
- Type 3: Open Protocol-Net—This is not vendor specific and works by forwarding database requests to a remote database source using a net server component. How the net server component accesses the database is transparent to the client. The client driver communicates with the net server using a database-independent protocol and the net server translates this protocol into database calls. This type of driver can access any database.
- Type 4: Proprietary Protocol-Net(pure Java driver)—This has a same configuration as a type 3 driver but uses a wire protocol specific to a particular vendor and hence can access only that vendor's database. Again this is all transparent to the client.
Note: Type 4 JDBC driver is most preferred kind of approach in JDBC.
16.Which type of JDBC driver is the fastest one?
JDBC Net pure Java driver(Type IV) is the
fastest driver because it converts the JDBC calls into vendor specific protocol
calls and it directly interacts with the database.
17.Does the JDBC-ODBC Bridge support multiple concurrent open statements per connection?
No. You can open only one Statement object
per connection when you are using the JDBC-ODBC Bridge.
18.Which is the right type of driver to use and when?
- Type I driver is handy for prototyping
- Type III driver adds security, caching, and connection control
- Type III and Type IV drivers need no pre-installation
Note: Preferred by 9 out of 10 Java
developers: Type IV. Click here to learn
more about JDBC drivers.
19.What are the standard isolation levels defined by JDBC?
The values are defined in the class
java.sql.Connection and are:
- TRANSACTION_NONE
- TRANSACTION_READ_COMMITTED
- TRANSACTION_READ_UNCOMMITTED
- TRANSACTION_REPEATABLE_READ
- TRANSACTION_SERIALIZABLE
Any given database may not support all of
these levels.
20.What is resultset ?
The ResultSet represents set of rows
retrieved due to query execution.
ResultSet rs = stmt.executeQuery(sqlQuery);
21.What are the types of resultsets?
The values are defined in the class
java.sql.Connection and are:
TYPE_FORWARD_ONLY
specifies that a resultset is not scrollable, that is, rows within it can be advanced only in the forward direction.TYPE_SCROLL_INSENSITIVE
specifies that a resultset is scrollable in either direction but is insensitive to changes committed by other transactions or other statements in the same transaction.TYPE_SCROLL_SENSITIVE
specifies that a resultset is scrollable in either direction and is affected by changes committed by other transactions or statements within the same transaction.
Note:
A
TYPE_FORWARD_ONLY
resultset is always
insensitive.22.What’s the difference between TYPE_SCROLL_INSENSITIVE and TYPE_SCROLL_SENSITIVE?
TYPE_SCROLL_INSENSITIVE
|
TYPE_SCROLL_SENSITIVE
|
An insensitive resultset is like
the snapshot of the data in the database when query was executed.
|
A sensitive resultset does NOT represent
a snapshot of data, rather it contains points to those rows which satisfy the
query condition.
|
After we get the resultset the changes
made to data are not visible through the resultset, and hence they are known
as insensitive.
|
After we obtain the resultset if the data
is modified then such modifications are visible through resultset.
|
Performance not effected with
insensitive.
|
Since a trip is made for every ‘get’
operation, the performance drastically get affected.
|
22.What is rowset?
A RowSet is an object that encapsulates a set
of rows from either Java Database Connectivity (JDBC) result sets or tabular
data sources like a file or spreadsheet. RowSets support component-based
development models like JavaBeans, with a standard set of properties and an
event notification mechanism.
|
24.What are the different types of RowSet ?
There are two types of RowSet are there. They
are:
- Connected - A connected RowSet object connects to the database once and remains connected until the application terminates.
- Disconnected - A disconnected RowSet object connects to the database, executes a query to retrieve the data from the database and then closes the connection. A program may change the data in a disconnected RowSet while it is disconnected. Modified data can be updated in the database after a disconnected RowSet reestablishes the connection with the database.
25.What is the need of BatchUpdates?
The BatchUpdates feature allows us to group
SQL statements together and send to database server in one single trip.
26.What is a DataSource?
A DataSource object is the representation of
a data source in the Java programming language. In basic terms,
- A DataSource is a facility for storing data.
- DataSource can be referenced by JNDI.
- Data Source may point to RDBMS, file System , any DBMS etc..
27.What are the advantages of DataSource?
The few advantages of data source are :
- An
application does not need to hardcode driver information, as it does with
the
DriverManager.
- The
DataSource
implementations can easily change the properties of data sources. For example: There is no need to modify the application code when making changes to the database details. - The
DataSource facility allows developers to implement a
DataSource
class to take advantage of features like connection pooling and distributed transactions.
28.What is connection pooling? what is the main advantage of using connection pooling?
A connection pool is a mechanism to reuse
connections created. Connection pooling can increase performance dramatically
by reusing connections rather than creating a new physical connection each time
a connection is requested..
Hibernate interview questions and answers
What is ORM?
Latest answer: Object Relational Model is a programming technique. This technique is used to convert the data from an incompatible type to that of a relational database. The mapping is done by using the OOP..............Read answer
What is Hibernate?
Latest answer: Hibernate is an ORM tool. Hibernate is a solution for object-relational mapping and a persistence management layer. For example a java application is used to save data of an object to a database.................Read answer
Why do you need ORM tools like hibernate?
Latest answer: Hibernate is open source ORM tool. Hibernate reduces the time to perform database operations. Hibernate has advantages over using entity beans or JDBC calls. The implementation is done by just using POJOs............Read answer
What are the main advantages of ORM like hibernate?
Latest answer: The SQL code / statements in the application can be eliminated without writing complex JDBC / Entity Bean code.................Read answer
What are the core interfaces of Hibernate framework?
Latest answer: Session Interface: The basic interface for all hibernate applications. The instances are light weighted and can be created and destroyed without expensive process............Read answer
Explain how to configure Hibernate.
Latest answer: Hibernate uses a file by name hibernate.cfg.xml. This file creates the connection pool and establishes the required environment. A file named .hbm.xml is used to author mappings...............Read answer
Define HibernateTemplate.
Latest answer: HibernateTemplate is a helper class that is used to simplify the data access code. This class supports automatically converts HibernateExceptions which is a checked exception into..............Read answer
What are the benefits of HibernateTemplate?
Latest answer: HibernateTemplate, which is a Spring Template class, can simplify the interactions with Hibernate Sessions............Read answer
What is Hibernate proxy?
Latest answer: Mapping of classes can be made into a proxy instead of a table. A proxy is returned when actually a load is called on a session...........Read answer
Explain the types of Hibernate instance states.
Latest answer: The persistent class’s instance can be in any one of the three different states. These states are defined with a persistence context. The Hibernate has the following instance states:.............Read answer
Explain the Collection types in Hibernate.
Latest answer: A collection is defined as a one-to-many reference. The simplest collection type in Hibernate is...........Read answer
What is lazy initialization in hibernate?
Latest answer: The delaying the object creation or calculating a value or some process until the first time it is needed. The retrieval of particular information only at the time when the object is accessed............Read answer
What is lazy fetching in hibernate?
Latest answer: Lazy fetching is associated with child objects loading for its parents. While loading the parent, the selection of loading a child object is to be specified / mentioned in the hbm.xml file..............Read answer
What is the difference between sorted and ordered collection in hibernate?
Latest answer:Sorted Collection
The sorted collection is a collection that is sorted using the Java collections framework. The sorting is done in the memory of JVM that is running hibernate, soon after reading the data from the database............
Read answer
Explain the difference between transient (i.e. newly instantiated) and detached objects in hibernate.
Latest answer: Transient objects do not have association with the databases and session objects. They are simple objects and not persisted to the database...........Read answer
Explain the advantages and disadvantages of detached objects.
Latest answer: Detached objects passing can be done across layers upto the presentation layer without using Data Transfer Objects................Read answer
What is Hibernate Query Language (HQL)?
Latest answer: Hibernate Query Language is designed for data management using Hibernate technology. It is completely object oriented and hence has notions like inheritance, polymorphism and abstraction............Read answer
Explain the general flow of Hibernate communication with RDBMS?
Latest answer: The Hibernate configuration is to be loaded and creation of configuration object is done. The mapping of all hbm files will be performed automatically............
Read answer
No comments:
Post a Comment