0% found this document useful (0 votes)
9 views31 pages

Interacting With Database

The document provides an overview of database interaction using JDBC and ODBC, detailing their definitions, components, and types of drivers. It explains the process of connecting a Java application to a database, including steps such as registering the driver, creating a connection, executing queries, and closing the connection. Additionally, it includes example code for connecting to MySQL and Access databases using JDBC.

Uploaded by

shabana bardol
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)
9 views31 pages

Interacting With Database

The document provides an overview of database interaction using JDBC and ODBC, detailing their definitions, components, and types of drivers. It explains the process of connecting a Java application to a database, including steps such as registering the driver, creating a connection, executing queries, and closing the connection. Additionally, it includes example code for connecting to MySQL and Access databases using JDBC.

Uploaded by

shabana bardol
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/ 31

Interacting with Database

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.
JDBC
• JDBC stands for Java Database Connectivity.
• It is 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 Driver
• JDBC Driver is a software component that enables java
application to interact with the database. It uses two
Packages 1) Java.sql 2) javax.sql 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)
JDBC-ODBC bridge driver
• The JDBC type 1 driver, also known as the JDBC-ODBC bridge driver.
• JDBC API –Establish Connection with Database & Execute Queries & update
Statement to the Database.
• 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.
• Vendor Database – Structured Collection of Data & information related to
Vendors & Suppliers it help to manage vendor & supplier information
Native API 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.
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.
Thin driver
• 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.
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
• 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 is used to register the given driver
with DriverManager.
driver);

public static void deregisterDriver( Driver is used to deregister the given


driver (drop the driver from the list)
with DriverManager.
driver);

public static Connection getConnection is used to establish the connection


with the specified url.
( String url);

public static Connection is used to establish the connection


with the specified url, username
getConnection( String url, String and password.
userName, String password);
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.
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.
• When getConnection() method is called, it
returns a connection object.
Connection con=DriverManager.getConnection(URL);
Commonly used methods of Connection interface
Method Description

public Statement creates a statement object that


can be used to execute SQL
createStatement(); queries.

public void
It is used to set the commit
setAutoCommit(boolean status. By default it is true.
status);
It saves the changes made since
public void commit(); the previous commit/rollback
permanent.
Drops all changes made since the
public void rollback(); previous commit/rollback.
closes the connection and Releases a
public void close(); JDBC resources immediately.
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 used to execute SELECT query.


executeQuery(String sql); It returns the object of ResultSet.

public int used to execute specified query,


it may be create, drop, insert,
executeUpdate(String sql); update, delete etc.

public boolean used to execute queries that may


execute(String sql); return multiple results.

used to execute batch of


public int[] executeBatch();
commands.

void close() Close the statement object


ResultSet Interface
• A ResultSet object provides access to a table of
data.
• ResultSet object is usually generated by
executing a statement.
• The object of ResultSet maintains a cursor
pointing to a particular row of data.
• Initially, cursor points before the first row.
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 getInt(String is used to return the data of specified column name of
columnName); the current row as int.
public String getString(int is used to return the data of specified column index of the
columnIndex); current row as String.

public String getString(String is used to return the data of specified column name of
columnName); 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.

• 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.

• 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.

• 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.

• Example to close connection

con.close();
Example to Connect Java Application
with mysql 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/
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); }
}
Connection with Access Database
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.");
}
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();
}
}
}

You might also like