The document serves as an introduction to JDBC (Java Database Connectivity), covering its components such as JDBC drivers, how to connect to a database, and transaction management. It details different types of JDBC drivers, their advantages and disadvantages, as well as the steps required to establish a connection to an Oracle database. Furthermore, it discusses transaction management principles and the benefits of using prepared statements and batch processing for improved performance.
Introduction to JDBC API, its purpose in connecting Java applications to databases.
Explanation of JDBC technology compared to ODBC, and details on different types of JDBC drivers: JDBC-ODBC, Native-API, Network Protocol, and Thin drivers.
Advantages and disadvantages of various JDBC drivers along with detailed descriptions of each.
Step-by-step guide on connecting to an Oracle database using JDBC, covering registering drivers, creating connections, executing queries, and closing connections.
Overview of key JDBC components such as DriverManager, Connection, Statement, ResultSet, PreparedStatement, and ResultSetMetaData.
Understanding transaction management in JDBC, including ACID properties and advantages of managing transactions.
Utilizing batch processing in JDBC, including its advantages and a practical example of executing batch queries.
Introduction
• Java JDBCis a java API to connect and
execute query with the database.
• JDBC API uses jdbc drivers to connect with
the database.
5.
Why we useJDBC?
• Before JDBC, ODBC API is used
• ODBC API uses ODBC driver
• ODBC Driver written in C language
– platform dependent and
– unsecured.
• That is why Java has defined its own API
(JDBC API) that uses JDBC drivers (written
in Java language).
6.
API
• API (Applicationprogramming interface) is
a document that contains description of all
the features of a product or software.
• It represents classes and interfaces that
software programs can follow to
communicate with each other.
• An API can be created for applications,
libraries, operating systems, etc
1. JDBC-ODBC bridgeDriver
• This uses ODBC driver to connect to the
database.
• This driver converts JDBC method calls into
the ODBC function calls.
12.
Advantages
•easy to use.
•canbe easily connected to any database.
Disadvantages
•Performance degraded because JDBC
method call is converted into the ODBC
function calls.
•The ODBC driver needs to be installed on
the client machine.
13.
2. Native –API Driver
• It uses the client-side libraries of the
database.
• It converts JDBC method calls into native
calls of the database API.
• It is not written entirely in java.
15.
Advantages
• performance upgradedthan
JDBC-ODBC bridge driver.
Dis-advantages
•The Native driver needs to be installed on
the each client machine.
•The Vendor client library needs to be
installed on client machine.
16.
3. Network Protocoldriver
• It uses middleware (application server) that
converts JDBC calls directly or indirectly
into the vendor-specific database protocol.
• It is fully written in java.
18.
Advantages
No client sidelibrary is required
because of application server that can
perform many tasks like auditing,
load balancing, logging etc.
Dis-advantages
• Network support is required on client machine.
Requires database-specific coding to be done in the middle
tier.
•Maintenance of Network Protocol driver becomes costly
because it requires database-specific coding to be done in
the middle tier.
19.
4. Thin Layer
•The thin driver converts JDBC calls directly
into the vendor-specific database protocol.
• It is fully written in Java language.
21.
Advantages
•Better performance thanall other
drivers.
•No software is required at client
side or server side.
Dis-advantages
• Drivers depends on the Database.
5 Steps toconnect to the database in
java
• Register the driver class
• Creating connection
• Creating statement
• Executing queries
• Closing connection
24.
1. Register thedriver class
• The forName() method of Class class is
used to register the driver class.
• This method is used to dynamically load the
driver class.
Syntax of forName() method
public static void forName(String className)throws ClassNotFoundEx
ception
Example to register the OracleDriver class
Class.forName("oracle.jdbc.driver.OracleDriver");
25.
2. Create theconnection object
• The getConnection() method of
DriverManager class is used to establish
connection with the database.
Syntax of getConnection() method
1) public static Connection getConnection(String url)throws SQLException
2) public static Connection getConnection(String url,String name,String pas
sword)
throws SQLException
Example to establish connection with the Oracle database
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","system","password");
26.
3) Create theStatement object
• The createStatement() method of
Connection interface is used to create
statement.
• The object of statement is responsible to
execute queries with the database.
Syntax of createStatement() method
public Statement createStatement()throws SQLException
Example to create the statement object
Statement stmt=con.createStatement();
27.
4. Execute thequery
• It is used to execute queries to the database.
• This method returns the object of ResultSet
that can be used to get all the records of a
table.
Syntax of executeQuery() method
public ResultSet executeQuery(String sql)throws SQLException
Example to execute query
ResultSet rs=stmt.executeQuery("select * from emp");
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2)); }
28.
5. Close theconnection object
• By closing connection object statement and
ResultSet will be closed automatically.
• The close() method of Connection interface
is used to close the connection.
Syntax of close() method
public void close()throws SQLException
Example to close connection
con.close();
29.
DriverManager Class
• Itacts as an interface between user and
drivers.
• It keeps track of the drivers that are
available and handles establishing a
connection between a database and the
appropriate driver.
30.
Connection interface
• AConnection is the session between java
application and database.
• The Connection interface provide many
methods for transaction management like
commit(),rollback() etc.
Note: By default, connection commits the
changes after executing queries.
31.
Statement Interface
• TheStatement interface provides
methods to execute queries with the
database.
• It provides factory method to get the object
of ResultSet.
32.
ResultSet Interface
• Theobject of ResultSet maintains a cursor
pointing to a particular row of data.
• Initially, cursor points to before the first
row.
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENS
ITIVE,
ResultSet.CONCUR_UPDATABLE);
33.
PreparedStatement Interface
• ThePreparedStatement interface is a
subinterface of Statement.
• It is used to execute parameterized query
String sql="insert into emp values(?,?,?)";
34.
Why we usePreparedStatement?
• Improves performance: The performance
of the application will be faster if you use
PreparedStatement interface because query
is compiled only once.
35.
ResultSetMetaData Interface
• Themetadata means data about data i.e. we
can get further information from the data.
• Metadata of a table
– total number of column,
– column name,
– column type etc. ,
• ResultSetMetaData interface is useful
because it provides methods to get
metadata from the ResultSet object.
Transaction Management
• Transactionrepresents a single unit of
work.
• The ACID properties describes the
transaction management well.
• ACID stands for
Atomicity,
Consistency,
isolation and
durability.
38.
Transaction Management
• Atomicitymeans either all successful or none.
• Consistency ensures bringing the database
from one consistent state to another consistent
state.
• Isolation ensures that transaction is isolated
from other transaction.
• Durability means once a transaction has been
committed, it will remain so, even in the event
of errors, power loss etc.
• Instead ofexecuting a single query, we can
execute a batch (group) of queries.
• It makes the performance fast.
• java.sql.Statement &
java.sql.PreparedStatement interfaces
provide methods for batch processing.
43.
Example for BatchProcessing
• Load the driver class
• Create Connection
• Create Statement
• Add query in the batch
• Execute Batch
• Close Connection