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
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.
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.
What does the connection object represents?
The connection
object represents communication context, i.e., all communication with database
is through connection object only.
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.
Statement
stmt = conn.createStatement();
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.
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 |
What are callable statements ?
Callable
statements are used from JDBC application to invoke stored procedures and
functions.
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.
No comments:
Post a Comment