Interacting With Database
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 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 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.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2. Creating connection
• The DriverManager.getConnection() method is used
to establish connection with the database.
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();
}
}
}