JDBC Architecture
Java application calls the JDBC library. JDBC loads a driver which talks to the database. We
can change database engines without changing database code.
JDBC Basics - Java Database
Connectivity Steps
Before you can create a java jdbc connection to the database, you must first import the
[Link] package.
import [Link].*; The star ( * ) indicates that all of the classes in the package [Link] are
to be imported.
1. Loading a database driver,
In this step of the jdbc connection process, we load the driver class by calling
[Link]() with the Driver class name as an argument. Once loaded, the Driver class
creates an instance of itself. A client can connect to Database Server through JDBC Driver.
Since most of the Database servers support ODBC driver therefore JDBC-ODBC Bridge
driver is commonly used.
The return type of the [Link] (String ClassName) method is “Class”. Class is a class
in
[Link] package.
try {
[Link](”[Link]”); //Or any
other driver
}
catch(Exception x){
[Link]( “Unable to load the driver
class!” );
}
2. Creating jdbc Connection
The JDBC DriverManager class defines objects which can connect Java applications to a
JDBC driver. DriverManager is considered the backbone of JDBC architecture.
DriverManager class manages the JDBC drivers that are installed on the system. Its
getConnection() method is used to establish a connection to a database. It uses a
username, password, and a jdbc url to establish a connection to the database and returns a
connection object. A jdbc Connection represents a session/connection with a specific
database. Within the context of a Connection, SQL, PL/SQL statements are executed and
results are returned. An application can have one or more connections with a single
database, or it can have many connections with different databases. A Connection object
provides metadata i.e. information about the database, tables, and fields. It also contains
methods to deal with transactions.
JDBC URL Syntax:: jdbc: <subprotocol>: <subname>
JDBC URL Example:: jdbc: <subprotocol>: <subname>•Each driver has its own subprotocol
•Each subprotocol has its own syntax for the source. We’re using the jdbc odbc subprotocol,
so the DriverManager knows to use the [Link].
try{
Connection
dbConnection=[Link](url,”loginName”,”Passwor
d”)
}
catch( SQLException x ){
[Link]( “Couldn’t get connection!” );
}
3. Creating a jdbc Statement object,
Once a connection is obtained we can interact with the database. Connection interface
defines methods for interacting with the database via the established connection. To
execute SQL statements, you need to instantiate a Statement object from your connection
object by using the createStatement() method.
Statement statement = [Link]();
A statement object is used to send and execute SQL statements to a database.
Three kinds of Statements
Statement: Execute simple sql queries without parameters.
Statement createStatement()
Creates an SQL Statement object.
Prepared Statement: Execute precompiled sql queries with or without parameters.
PreparedStatement prepareStatement(String sql)
returns a new PreparedStatement object. PreparedStatement objects are precompiled
SQL statements.
Callable Statement: Execute a call to a database stored procedure.
CallableStatement prepareCall(String sql)
returns a new CallableStatement object. CallableStatement objects are SQL stored
procedure call statements.
4. Executing a SQL statement with the Statement object, and returning a jdbc
resultSet.
Statement interface defines methods that are used to interact with database via the
execution of SQL statements. The Statement class has three methods for executing
statements:
executeQuery(), executeUpdate(), and execute(). For a SELECT statement, the method to
use is executeQuery . For statements that create or modify tables, the method to use is
executeUpdate. Note: Statements that create a table, alter a table, or drop a table are all
examples of DDL
statements and are executed with the method executeUpdate. execute() executes an SQL
statement that is written as String object.
ResultSet provides access to a table of data generated by executing a Statement. The
table rows are retrieved in sequence. A ResultSet maintains a cursor pointing to its current
row of data. The next() method is used to successively step through the rows of the tabular
results.