JDBC
By
Sharmilee
9894303344
Java Trainer
Mazenet Solution
Objective
• Introduction to JDBC
• JDBC Drivers
• Steps to connect database
• ResultSet
• Statement & PreparedStatement
• Transaction Management
• Batch Processing
Introduction
• Java JDBC is a java API to connect and
execute query with the database.
• JDBC API uses jdbc drivers to connect with
the database.
Why we use JDBC?
• 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).
API
• API (Application programming 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
JDBC Drivers
JDBC Drivers
• JDBC Driver is a software component
• enables java application to interact with the
database
Types of JDBC Drivers
1. JDBC-ODBC bridge driver
2. Native-API driver (partially java driver)
3. Network Protocol driver (fully java driver)
4. Thin driver (fully java driver)
1. JDBC-ODBC bridge Driver
• This uses ODBC driver to connect to the
database.
• This driver converts JDBC method calls into
the ODBC function calls.
Advantages
•easy to use.
•can be 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.
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.
Advantages
• performance upgraded than
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.
3. Network Protocol driver
• It uses middleware (application server) that
converts JDBC calls directly or indirectly
into the vendor-specific database protocol.
• It is fully written in java.
Advantages
No client side library 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.
4. Thin Layer
• The thin driver converts JDBC calls directly
into the vendor-specific database protocol.
• It is fully written in Java language.
Advantages
•Better performance than all other
drivers.
•No software is required at client
side or server side.
Dis-advantages
• Drivers depends on the Database.
Steps to connect oracle Database
5 Steps to connect to the database in
java
• Register the driver class
• Creating connection
• Creating statement
• Executing queries
• Closing connection
1. Register the driver 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");
2. Create the connection 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");
3) Create the Statement 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();
4. Execute the query
• 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)); }
5. Close the connection 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();
DriverManager Class
• It acts 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.
Connection interface
• A Connection 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.
Statement Interface
• The Statement interface provides
methods to execute queries with the
database.
• It provides factory method to get the object
of ResultSet.
ResultSet Interface
• The object 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);
PreparedStatement Interface
• The PreparedStatement interface is a
subinterface of Statement.
• It is used to execute parameterized query
String sql="insert into emp values(?,?,?)";
Why we use PreparedStatement?
• Improves performance: The performance
of the application will be faster if you use
PreparedStatement interface because query
is compiled only once.
ResultSetMetaData Interface
• The metadata 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
Transaction Management
• Transaction represents a single unit of
work.
• The ACID properties describes the
transaction management well.
• ACID stands for
Atomicity,
Consistency,
isolation and
durability.
Transaction Management
• Atomicity means 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.
Advantage of Transaction
management
• Fast performance - It makes the
performance fast because database is hit at
the time of commit.
Batch Processing
• Instead of executing 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.
Example for Batch Processing
• Load the driver class
• Create Connection
• Create Statement
• Add query in the batch
• Execute Batch
• Close Connection
Thank You!

Java- JDBC- Mazenet Solution

  • 1.
  • 2.
    Objective • Introduction toJDBC • JDBC Drivers • Steps to connect database • ResultSet • Statement & PreparedStatement • Transaction Management • Batch Processing
  • 3.
    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
  • 7.
  • 8.
    JDBC Drivers • JDBCDriver is a software component • enables java application to interact with the database
  • 9.
    Types of JDBCDrivers 1. JDBC-ODBC bridge driver 2. Native-API driver (partially java driver) 3. Network Protocol driver (fully java driver) 4. Thin driver (fully java driver)
  • 10.
    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.
  • 22.
    Steps to connectoracle Database
  • 23.
    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.
  • 36.
  • 37.
    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.
  • 39.
    Advantage of Transaction management •Fast performance - It makes the performance fast because database is hit at the time of commit.
  • 41.
  • 42.
    • 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
  • 44.