UNIT 5 Interacting-With-Database
UNIT 5 Interacting-With-Database
4
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.
5
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.
6
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.
7
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.
8
In a two-tier model, a Java application
communicates directly with the database, via
the JDBC driver.
9
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.
10
The JDBC API provides the following
interfaces and classes −
DriverManager Class
Driver Interface
Connection Interface
Statement Interface
ResultSet Interface
11
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().
12
Commonly used methods of DriverManager class
Method Description
14
A Connection is the session between java application
and database.
The Connection interface provide many methods for
transaction management like commit(), rollback() etc.
When getConnection() method is called, it returns a
connection object.
Connection
con=DriverManager.getConnection(URL);
15
Commonly used methods of Connection
interface
Method Description
public Statement creates a statement
object that can be used
createStatement(); to execute SQL queries.
public void It is used to set the
setAutoCommit(bool commit status. By
default it is true.
ean status);
It saves the changes
public void made since the previous
commit/rollback
commit(); permanent.
public void Drops all changes made
since the previous
rollback(); commit/rollback.
closes the connection and
Releases a JDBC resources
public void close(); immediately.
16
The Statement interface provides methods to
execute queries with the database.
It provides factory method to get the object of
ResultSet.
17
Commonly used methods of Statement interface
Method Description
public ResultSet
used to execute SELECT query.
executeQuery(String It returns the object of ResultSet.
sql);
public int used to execute specified query,
executeUpdate(String it may be create, drop, insert,
sql); update, delete etc.
19
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 is used to move the cursor to the specified row
number in the ResultSet object.
row);
public int getInt(int is used to return the data of specified column index
of the current row as int.
columnIndex);
public int getInt(String is used to return the data of specified column name
of the current row as int.
columnName);
public String getString(int is used to return the data of specified column index
of the current row as String.
columnIndex);
public String getString(String is used to return the data of specified column name
of the current row as String.
columnName); 20
Thereare 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
21
The Class.forName() method is used to register the
driver class. This method is used to dynamically load
the driver class.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
22
2. Creating connection
TheDriverManager.getConnection() method is
used to establish connection with the database.
23
3. Creating statement
ThecreateStatement() method of
Connection interface is used to create
statement. The object of statement is
responsible to execute queries with the
database.
24
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.
System.out.println(rs.getInt(1)+" "+rs.getString(
2));
} 25
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.
con.close();
26
Example to Connect Java
Application with mysql database
27
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:33
06/Emp","root","root");
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) {
System.out.println(e); }
} 28
29
import java.sql.*;
public class JdbcAccessTest {
public static void main(String[] args) {
String databaseURL = "jdbc:ucanaccess://e://Contacts.accdb";
try (
Connection connection = DriverManager.getConnection(databaseURL)) {
String sql = "INSERT INTO Contacts (Full_Name, Email, Phone) VALUES
(?, ?, ?)";
PreparedStatement preparedStatement =
connection.prepareStatement(sql);
preparedStatement.setString(1, "Rohit");
preparedStatement.setString(2, "[email protected]");
preparedStatement.setString(3, "0919989998");
int row = preparedStatement.executeUpdate();
if (row > 0) {
System.out.println("A row has been inserted successfully.");
}
30
sql = "SELECT * FROM Contacts";
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery(sql);
while (result.next()) {
int id = result.getInt("Contact_ID");
String fullname = result.getString("Full_Name");
String email = result.getString("Email");
String phone = result.getString("Phone");
System.out.println(id + ", " + fullname + ", " + email + ", " +
phone);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
31