0% found this document useful (0 votes)
17 views37 pages

Interacting With Database

Uploaded by

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

Interacting With Database

Uploaded by

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

A Tutorial on

Interacting with Database


Mr. Mahesh Pore
Lecturer, Computer Engineering Department
Institute of Civil and Rural Engineering, Gargoti,
Kolhapur
Need of Database

• Permanent Storage
• Databases can store very large numbers of records
efficiently (they take up little space).
• It is very quick and easy to find information .
• It is easy to add new data and to edit or delete old data.
ODBC

▰ ODBC stands for Open Database


Connectivity
▰A standard or open application
programming interface (API) for accessing a
database.
▰ ODBC provides a C interface for database
access on Windows environment.
Limitations of ODBC

▰ ODBC is procedural

▰ Platform dependent

▰ ODBC is amore restrictive API, so some


features like save points in transaction are
not supported
JDBC

▰ JDBC stands for Java Database Connectivity.


▰ Itis a standard Java API for connecting programs
written in Java to the data in relational databases.
▰ JDBC works with Java on a variety of platforms,
such as Windows, Mac OS, and the various
versions of UNIX.
JDBC Architecture
JDBC Architecture
JDBC Driver
▰ JDBC Driver is a software component that enables java
application to interact with the database. There are 4 types of
JDBC drivers:

➢ JDBC-ODBC bridge driver


➢ Native-API driver (partially java driver)
➢ JDBC-Net pure Java/ Network-Protocol driver (fully java
driver)
➢ Pure Java Driver /Thin driver / Database-Protocol driver(fully
java driver)
Type-1 Driver: JDBC-ODBC bridge driver
▰ The JDBC type 1 driver, also known as the JDBC-ODBC
bridge driver.
▰ The JDBC-ODBC bridge driver uses ODBC driver to connect
to the database. The JDBC-ODBC bridge driver converts
JDBC method calls into the ODBC function calls.
When to Use
▰ When use Microsoft database
▰ Prototyping only not for production purposes

Drawbacks:
▰ Not suitable for high transaction environment
▰ Complete java command set is not supported by Type 1 driver
Type-2 Driver: Native API driver, Part-Java
driver
▰ The JDBC type 2 driver, also known as the Native-API driver
▰ The Native API driver uses the client-side libraries of the
database. The driver converts JDBC method calls into native
calls of the database API. It is not written entirely in java.
When to use

▰ When use databases of Large database vendors like Oracle, IBM

Drawbacks:
▰ Type 2 drivers don’t use the full Java API
▰ Platform specific
▰ Developers require to perform additional configuration
Type-3 Driver: JDBC-Net pure Java Driver
▰ The JDBC type 3 driver, also known as the Pure Java driver for
database middleware. It is a database driver implementation
which makes use of a middle tier between the calling program and
the database.
▰ The middle-tier (application server) converts JDBC calls directly or
indirectly into a vendor-specific database protocol. It is fully
written in java.
When to use

▰ When you want to connect multiple databases


▰ Need not worry about kind of databases and their drivers
Advantages:
▰ Do not require client native code
▰ Platform Independent
▰ Faster than Type-1 and Type-2 driver
▰ Developers does not require to perform additional configuration
Disadvantages:
Requires Middleware Layer
Type-4 Driver: Pure Java/Thin driver for Direct-to-Database
▰ The JDBC type 4 driver, also known as the Direct to Database Pure
Java Driver, is a database driver implementation that
converts JDBC calls directly into a vendor- specific database protocol.
▰ That is why it is known as thin driver. It is fully written in Java
language.
When to use

▰ When you want direct access to databases


▰ Need not worry about kind of databases and their drivers
Advantages:
▰ Do not require client native code
▰ Platform Independent
▰ Faster than Type-1 , Type-2 and Type-3 driver
▰ Developers does not require to perform additional configuration
JDBC two tier model
▰ In a two-tier model, a Java application communicates
directly with the database, via the JDBC driver.
JDBC three tier model
▰ In a three-tier model, a Java application communicates
with a middle tier component that functions as an
application server. The application server talks to a given
database using JDBC.
Common JDBC Components

▰ java.sql.*;
▰ The JDBC API provides the following interfaces and classes −
▰ DriverManager Class
▰ Driver Interface
▰ Connection Interface
▰ Statement Interface
▰ ResultSet Interface
Common JDBC Components

DriverManager Class

▰ The DriverManager class 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.
▰ The DriverManager class maintains a list of Driver classes that
have registered themselves by calling the method
DriverManager.registerDriver().
Commonly used methods of DriverManager
class
Method Description

public static void registerDriver(Driver driver); is used to register the given


driver with DriverManager.

is used to deregister the given


public static void deregisterDriver(Driver driver); driver (drop the driver from the
list) with DriverManager.

public static Connection getConnection(String is used to establish the


url); connection with the specified
url.

public static Connection getConnection(String is used to establish the


url,String userName,String password); connection with the specified
url, username and password.
Common JDBC Components (cont’d..)

▰ Driver Interface
This interface handles the communications with the database
server. You will very rarely interact directly with Driver
objects. Instead, you use DriverManager objects, which
manages objects of this type. It also abstracts the details
associated with working with Driver objects.
Common JDBC Components (cont’d..)

▰ Connection Interface
A Connection is the session between java application and
database. The Connection interface is a factory of Statement,
PreparedStatement, and DatabaseMetaData. The Connection
interface provide many methods for transaction management
like commit(),rollback() etc.
Commonly used methods of Connection
interface

Method Description

public Statement createStatement(); creates a statement object that can


be used to execute SQL queries.

public void setAutoCommit(boolean It is used to set the commit status. By


status); default it is true.

public void commit(); It saves the changes made since the


previous commit/rollback permanent.

public void rollback(); Drops all changes made since the


previous commit/rollback.

closes the connection and Releases


public void close(); a JDBC resources immediately.
Common JDBC Components (cont’d..)

▰ Statement Interface
The Statement interface provides methods to execute queries
with the database. It provides factory method to get the
object of ResultSet.
Commonly used methods of Statement interface

Method Description

public ResultSet executeQuery(String used to execute SELECT query. It


sql); returns the object of ResultSet.

used to execute specified query, it may


public int executeUpdate(String sql); be create, drop, insert, update, delete
etc.

public boolean execute(String sql); used to execute queries that may return
multiple results.

public int[] executeBatch(); used to execute batch of commands.


Common JDBC Components (cont’d..)

▰ ResultSet Interface
The object of ResultSet maintains a cursor pointing to a
particular row of data. Initially, cursor points to before the first
row.
“Select * from Table where Percentage>70”
Table: ResultSet
Roll Name Percentage
No Roll Name Percentage
No
1 abc 70
2 efg 75
2 efg 75
3 pqr 82
3 pqr 82

4 mnp 50

5 uvw 67
Commonly used methods of ResultSet interface
Method Description
public boolean next(); is used to move the cursor to the one row next
from the current position.
public boolean previous(); is used to move the cursor to the one row previous
from the current position.
public boolean first(); is used to move the cursor to the first row in result
set object.
public boolean last(); is used to move the cursor to the last row in result
set object.
public boolean absolute(int row); is used to move the cursor to the specified row
number in the ResultSet object.
public int getInt(int columnIndex); is used to return the data of specified column index
of the current row as int.
public int getString(String columnName); is used to return the data of specified column name
of the current row as int.
public String getString(int columnIndex); is used to return the data of specified column index
of the current row as String.
public String getString(String is used to return the data of specified column name
columnName); of the current row as String.
Connecting to Database

▰ There are 5 steps to connect any java application with the


database in java using JDBC. They are as follows:

1. Register the driver class


2. Creating connection
3. Creating statement
4. Executing queries
5. Closing connection
1.Register the driver class
▰ The Class.forName() method 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 ClassNotFoundException

▰ Example to register with JDBC-ODBC Driver

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2. Creating connection
▰ The DriverManager .getConnection() method is used to establish
connection with the database.

▰ Syntax of getConnection() method

public static Connection getConnection(String url)throws SQLException

public static Connection getConnection(String url,String name,String password)


throws SQLException

▰ Example establish connection with Oracle Driver


Connection con = DriverManager.getConnection
("jdbc:odbc:DemoDB","username","password");
3. Creating statement

▰ 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. Executing queries
▰ The executeQuery() method of Statement interface 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. Closing connection

▰ 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();
Example to Connect Java
Application with database
import java.sql.*;
class MysqlCon{
public static void main(String args[])
{
Try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/sun","root","root");
//here sun is database name, root is username and password
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from emp");
while(rs.next())
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
con.close();
}
catch(Exception e)
{
▰ DSN
▰ Database
Java Application Table

You might also like