0% found this document useful (0 votes)
47 views36 pages

Chapter 2 JDBC 1.pptx Teamr

This document provides an overview of JDBC, including: - The layers in the JDBC architecture are the JDBC application layer and JDBC driver layer. - The types of JDBC drivers are JDBC-ODBC bridge driver, native-API partly-Java driver, JDBC-Net pure-Java driver, and native protocol pure-Java driver. - The commonly used JDBC API classes and interfaces are DriverManager, Driver, Connection, Statement, ResultSet, and SQLException.

Uploaded by

bella
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views36 pages

Chapter 2 JDBC 1.pptx Teamr

This document provides an overview of JDBC, including: - The layers in the JDBC architecture are the JDBC application layer and JDBC driver layer. - The types of JDBC drivers are JDBC-ODBC bridge driver, native-API partly-Java driver, JDBC-Net pure-Java driver, and native protocol pure-Java driver. - The commonly used JDBC API classes and interfaces are DriverManager, Driver, Connection, Statement, ResultSet, and SQLException.

Uploaded by

bella
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 36

Chapter Two JDBC Part One

CSE-SoEEC 1
JDBC
Objectives

In this session, you will learn to:


Identify the layers in JDBC architecture
Identify the types of JDBC drivers
Use the classes and interfaces of JDBC API
Understand and execute the steps to create
JDBC applications

Slide 2 of 35
JDBC
Introducing JDBC
Database Connectivity:
Sun Microsystems/Oracle has included JDBC API as a
part of J2SDK to develop Java applications that can
communicate with databases.
The following figure shows the Airline Reservation
System developed in Java interacting with the Airlines
database using the JDBC API:

Slide 3 of 35
JDBC
JDBC Architecture:
Database Connectivity
Provides the mechanism to translate Java
statements into SQL statements.
Can be classified into two layers:
JDBC application layer
JDBC driver layer

Slide 4 of 35
JDBC
Database Connectivity (Contd.)
JDBC Drivers:
Convert SQL statements into a form that a particular
database can interpret.
Retrieve the result of SQL statements and convert the
result into equivalent JDBC API class objects.
Are of four types:
JDBC-ODBC Bridge driver
Native-API Partly-Java driver
JDBC-Net Pure-Java driver
Native Protocol Pure-Java driver

Slide 5 of 35
Types
JDBCof Drivers

JDBC-ODBC Bridge driver:

Slide 6 of 35
Types of Drivers (Contd.)
JDBC

Native-API Partly-Java driver:

Slide 7 of 35
Types of Drivers (Contd.)
JDBC

JDBC-Net Pure-Java driver:

Slide 8 of 35
Types of Drivers (Contd.)
JDBC

Native-Protocol Pure-Java driver:

Slide 9 of 35
Using JDBC API
JDBC
The JDBC API classes and interfaces are available in the
java.sql and the javax.sql packages.
The commonly used classes and interfaces in the JDBC
API are:
DriverManager class: Loads the driver for a database.
Driver interface: Represents a database driver. All JDBC driver
classes must implement the Driver interface.
Connection interface: Enables you to establish a connection
between a Java application and a database.
Statement interface: Enables you to execute SQL statements.
ResultSet interface: Represents the information retrieved from a
database.
SQLException class: Provides information about the exceptions
that occur while interacting with databases.

Slide 10 of 35
Creation of a JDBC Application
JDBC

Steps to create a JDBC application are:


Load a driver
Connect to a database
Create and execute JDBC statements
Handle SQL exceptions
Close the Connection

Slide 11 of 35
Loading a Driver
JDBC
Driver can be loaded:
Programmatically:
Using the forName() method
Using the registerDriver()method
Manually:
By setting system property

Slide 12 of 35
The forName() Method
JDBC
Using the forName() method:
The forName() method is available in the
java.lang.Class class.
The forName() method loads the JDBC driver and
registers the driver with the driver manager.
The method call to use the the forName() method is:
Class.forName("com.microsoft.sqlserver.j
dbc.SQLServerDriver");

Slide 13 of 35
The registerDriver() Method
JDBC
Using the registerDriver() method:
You can create an instance of the Driver class to load a JDBC
driver.
This instance enables you to provide the name of the driver class
at run time.
The statement to create an instance of the Driver class is:
Driver d = new
com.microsoft.sqlserver.jdbc.SQLServerDriver();
You need to call the registerDriver() method to register the
Driver object with the DriverManager.
The method call to register the Type 4 driver is:
DriverManager.registerDriver(d);

Slide 14 of 35
Setting System Property
JDBC
Steps to set the System Property:
Add the driver name to the jdbc.drivers system
property to load a JDBC driver.
Use the –D command line option to set the system
property on the command line.
The command to set the system property is:
java –Djdbc.drivers=
com.microsoft.sqlserver.jdbc.SQLServerDriv
er SampleApplication

Slide 15 of 35
Connecting to a Database
JDBC
Connecting to a Database:
The DriverManager class provides the getConnection()
method to create a Connection object.
The getConnection() method has the following three
forms:
Connection getConnection (String <url>)
Connection getConnection (String <url>, String
<username>, String <password>)
Connection getConnection (String <url>, Properties
<properties>)

Slide 16 of 35
Creating and Executing JDBC Statements
JDBC
JDBC Statements can be created and executed as
follows:
The Connection object provides the
createStatement() method to create a Statement
object.
You can use static SQL statements to send requests to a
database to retrieve results.
The Statement interface contains the following
methods to send static SQL statements to a database:
ResultSet executeQuery(String str)
int executeUpdate(String str)
boolean execute(String str)

Slide 17 of 35
Database Operations
JDBC
Various database operations that you can
perform using a Java application are:
Querying a table
Inserting rows in a table
Updating rows in a table
Deleting rows from a table
Creating a table
Altering and dropping a table

Slide 18 of 35
Querying a Table
JDBC
In order to query a table:
The SELECT statement is executed using the
executeQuery() method and returns the output in the
form of a ResultSet object.
The code snippet to retrieve data from the Authors table
is:
String str = "SELECT * FROM Authors";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(str);

Slide 19 of 35
Inserting Rows in a Table
JDBC
In order to insert rows in a table:
The executeUpdate() method enables you to add rows in a
table.
The code snippet to insert a row in the Authors table is:
String str = " INSERT INTO Authors (au_id,
au_name, phone, address, city,
state, zip) VALUES (‘a004’, ‘Ringer Albert’,
‘8018260752’, ‘ 67 Seventh Av.’, ‘Salt Lake
City’, ‘UT’, ’100000078’)";
Statement stmt = con.createStatement();
int count = stmt.executeUpdate(str);

Slide 20 of 35
Updating and Deleting Rows in a Table
JDBC
The code snippet to modify a row in the Authors table is:
String str = "UPDATE Authors SET
address='10932 Second Av.’ WHERE
au_id=‘a001’";
Statement stmt = con.createStatement();
int count = stmt.executeUpdate(str);
The code snippet to delete a row from the Authors table is:
String str = "DELETE FROM Authors WHERE
au_id=‘a005’";
Statement stmt = con.createStatement();
int count = stmt.executeUpdate(str);

Slide 21 of 35
Creating a Table
JDBC
The CREATE TABLE statement is used to create
and define the structure of a table in a database.
The code snippet to create a table is:
String str="CREATE TABLE Publishers"
+"(pub_id VARCHAR(5),"
+"pub_name VARCHAR(50),"
+"phone INTEGER,"
+"address VARCHAR(50), "
+"city VARCHAR(50), "
+"ZIP VARCHAR(20))";
Statement stmt=con.createStatement();
stmt.execute(str);
Slide 22 of 35
Altering and Dropping a Table
JDBC
DDL provides the ALTER statement to modify the definition of
database object.
The code snippet to add a column to the Books table is:
String str="ALTER TABLE Books “+"ADD price INTEGER";
Statement stmt=con.createStatement();
stmt.execute(str);
DDL provides the DROP TABLE statement to drop a table from a
database.
The code snippet to drop the Books table from a database is:
String str="DROP TABLE Books";
Statement stmt=con.createStatement();
stmt.execute(str);

Slide 23 of 35
Handling SQL Exceptions
JDBC
SQL Exceptions can be handled as follows:
The java.sql package provides the SQLException class,
which is derived from the java.lang.Exception class.
You can catch the SQLException in a Java application
using the try and catch exception handling block.
The SQLException class contains various methods that
provide error information, these methods are:
int getErrorCode(): Returns the error code associated with the
error occurred.
String getSQLState(): Returns X/Open error code.
SQLException getNextException(): Returns the next exception
in the chain of exceptions.

Slide 24 of 35
Accessing Result Sets
JDBC
A ResultSet object maintains a cursor that enables you to
move through the rows stored in a ResultSet object.
The various types of ResultSet objects to store the output
returned by a database are:
Read only: Allows you to only read the rows in a ResultSet object.
Forward only: Moves the result set cursor from first row to last row
in forward direction only.
Scrollable: Moves the result set cursor forward or backward through
the result set.
Updatable: Allows you to update the result set rows retrieved from a
database table.

Slide 25 of 35
Accessing Result Sets (Contd.)
JDBC
The following table lists various fields of ResultSet interface
that you can use to specify the type of a ResultSet object:

ResultSet Fields Description

TYPE_SCROLL_SENTIT Specifies that the cursor of the ResultSet


IVE object is scrollable and it reflects the changes
in the data made by other users.
TYPE_SCROLL_INSENS Specifies that the cursor of the ResultSet
ITIVE object is scrollable and it does not reflect
changes in the data made by other users.
TYPE_FORWARD_ONLY Specifies that the cursor of the ResultSet
object moves in forward direction only from
the first row to the last row.

Slide 26 of 35
Accessing Result Sets (Contd.)
JDBC
The following table lists various fields of the ResultSet
interface that you can use to specify different concurrency
modes of result sets:

ResultSet Fields Description

Specifies the concurrency mode


CONCUR_READ_ONLY that does not allow you to
update the ResultSet object.

CONCUR_UPDATABLE Specifies the concurrency mode


that allows you to update the
ResultSet object.

Slide 27 of 35
The createStatement() method
JDBC
The createStatement() method has the following
three overloaded forms:
Statement createStatement()
Statement createStatement(int, int)
Statement createStatement(int, int, int)

Slide 28 of 35
Methods of ResultSet Interface
JDBC
The following tables lists the methods of ResultSet
interface:
Method Description

boolean first() Shifts the control of a result set cursor to the first
row of the result set.
boolean isFirst() Determines whether the result set cursor points to
the first row of the result set.
boolean Shifts the control of a result set cursor before the
beforeFirst() first row of the result set.
boolean Determines whether the result set cursor points
isBeforeFirst() before the first row of the result set.
boolean last() Shifts the control of a result set cursor to the last
row of the result set.
boolean isLast() Determines whether the result set cursor points to
the last row of the result set.

Slide 29 of 35
Methods of ResultSet Interface (Contd.)
JDBC
The methods of ResultSet interface (Contd.):

Method Description

boolean Shifts the control of a result set cursor after the last
afterLast() row of the result set.
boolean Determines whether the result set cursor points after
isAfterLast() the last row of the result set.

boolean Shifts the control of a result set cursor to the previous


previous() row of the result set.
boolean Shifts the control of a result set cursor to the row
absolute(int i) number that you specify as a parameter.

boolean Shifts the control of a result set cursor, forward or


relative(int i) backward, relative to the row number that you specify
as a parameter.

Slide 30 of 35
Methods of ResultSet Interface (Contd.)
JDBC
JDBC allows you to create an updatable result set that
enables you to modify the rows in the result set.
The following table lists some of the methods used with
updatable result set:
Method Description

void updateRow() Updates a row of the current ResultSet object and the
underlying database table.
void insertRow() Inserts a row in the current ResultSet object and the
underlying database table.
void deleteRow() Deletes a row from the current ResultSet object and the
underlying database table.
void Updates the specified column with the given string value.
updateString()
void updateInt() Updates the specified column with the given int value.

Slide 31 of 35
Demo: Creating a JDBC Application to Query a Database
JDBC
Problem Statement:
Create an application to retrieve information (author id, name, phone,
address, city, state, and zip ) about the authors who are living in the city
where the city name begins with the letter “S”.

Slide 32 of 35
Demo: Creating a JDBC Application to Query a Database (Contd.)
JDBC
Solution:
Type 4 driver is to be used for creating the application. To solve the above
problem, perform the following tasks:
Create a Data Source Name (DSN).
Code the application.
Compile and execute the application.

Slide 33 of 35
Summary
JDBC
In this session, you learned that:
JDBC Architecture consists of two layers:
JDBC application layer: Signifies a Java application that uses the JDBC API
to interact with the JDBC driver manager.
JDBC driver layer: Contains a driver, such as an SQL Server driver, which
enables a Java application to connect to a database. This layer acts as an
interface between a Java application and a database.
The JDBC driver manager manages various JDBC drivers.
The JDBC driver is software that a Java application uses to access a
database.
JDBC supports four types of drivers:
JDBC-ODBC Bridge driver
Native-API Partly-Java driver
JDBC-Net Pure-Java driver
Native Protocol Pure-Java driver

Slide 34 of 35
Summary (Contd.)
JDBC The JDBC API consists of various classes and interfaces that enable
Java applications to interact with databases.
The classes and interfaces of the JDBC API are defined in the
java.sql and javax.sql packages.
You can load a driver and register it with the driver manager either
programmatically or manually.
Two ways to load and register a driver programmatically are:
Using the Class.forName() method
Using the registerDriver() method
You can add the driver name to the jdbc.drivers system property to
load and register a JDBC driver manually.
A Connection object establishes a connection between a Java
application and a database.
A Statement object sends requests to and retrieves results from a
database.

Slide 35 of 35
Summary (Contd.)
JDBCYou can insert, update, and delete data from a table using
the DML statements in Java applications.
You can create, alter, and drop tables from a database
using the DDL statements in Java applications.
A ResultSet object stores the result retrieved from a
database when a SELECT statement is executed.
You can create various types of ResultSet objects such as
read only, updatable, and forward only.

Slide 36 of 35

You might also like