Last Updated : 12 Jul, 2025
JDBC is an API that helps applications to communicate with databases, it allows Java programs to connect to a database, run queries, retrieve, and manipulate data. Because of JDBC, Java applications can easily work with different relational databases like MySQL, Oracle, PostgreSQL, and more.
JDBC ArchitectureExplanation:
The JDBC architecture consists of two-tier and three-tier processing models to access a database. They are as described below:
1. Two-Tier ArchitectureA Java Application communicates directly with the database using a JDBC driver. It sends queries to the database and then the result is sent back to the application. For example, in a client/server setup, the user's system acts as a client that communicates with a remote database server.
Structure:
2. Three-Tier ArchitectureClient Application (Java) -> JDBC Driver -> Database
In this, user queries are sent to a middle-tier services, which interacts with the database. The database results are processed by the middle tier and then sent back to the user.
Structure:
JDBC ComponentsClient Application -> Application Server -> JDBC Driver -> Database
There are generally 4 main components of JDBC through which it can interact with a database. They are as mentioned below:
1. JDBC APIIt provides various methods and interfaces for easy communication with the database. It includes two key packages
java.sql
by offering additional features like connection pooling, statement pooling, and data source management. It also provides a standard to connect a database to a client application.
2. JDBC Driver ManagerDriver manager is responsible for loading the correct database-specific driver to establish a connection with the database. It manages the available drivers and ensures the right one is used to process user requests and interact with the database.
3. JDBC Test SuiteIt is used to test the operation(such as insertion, deletion, updating) being performed by JDBC Drivers.
4. JDBC DriversJDBC drivers are client-side adapters (installed on the client machine, not on the server) that convert requests from Java programs to a protocol that the DBMS can understand. There are 4 types of JDBC drivers:
Class/Interfaces
Description
DriverManager Manages JDBC drivers and establishes database connections. Connection Represents a session with a specific database. Statement Used to execute static SQL queries. PreparedStatement Precompiled SQL statement, used for dynamic queries with parameters. CallableStatement Used to execute stored procedures in the database. ResultSet Represents the result set of a query, allowing navigation through the rows. SQLException Handles SQL-related exceptions during database operations. Steps to Connect to MySQL Database Using JDBC Step 1: Load the JDBC DriverStep 2: Establish a ConnectionClass.forName("com.mysql.cj.jdbc.Driver");
Step 3: Create a StatementConnection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/your_database",
"your_username",
"your_password"
);
Step 4: Execute a QueryStatement statement = connection.createStatement();
Step 5: Close the ConnectionString query = "INSERT INTO students (id, name) VALUES (101, 'John Doe')";
int rowsAffected = statement.executeUpdate(query);
System.out.println("Rows affected: " + rowsAffected);
Create a Simple JDBC Applicationstatement.close();
connection.close();
The below Java program demonstrates how to establish a MYSQL database connection using JDBC and execute a query.
Java
// Java program to implement a simple JDBC application
import java.sql.*;
public class Geeks {
public static void main(String[] args)
{
// Database URL, username, and password
// Replace with your database name
String url
= "jdbc:mysql://localhost:3306/your_database";
// Replace with your MySQL username
String username = "your_username";
// Replace with your MySQL password
String password = "your_password";
// Updated query syntax for modern databases
String query
= "INSERT INTO students (id, name) VALUES (109, 'bhatt')";
// Establish JDBC Connection
try {
// Load Type-4 Driver
// MySQL Type-4 driver class
Class.forName("com.mysql.cj.jdbc.Driver");
// Establish connection
Connection c = DriverManager.getConnection(
url, username, password);
// Create a statement
Statement st = c.createStatement();
// Execute the query
int count = st.executeUpdate(query);
System.out.println(
"Number of rows affected by this query: "
+ count);
// Close the connection
st.close();
c.close();
System.out.println("Connection closed.");
}
catch (ClassNotFoundException e) {
System.err.println("JDBC Driver not found: "
+ e.getMessage());
}
catch (SQLException e) {
System.err.println("SQL Error: "
+ e.getMessage());
}
}
}
Output:
Note: When the program runs successfully, a new record is added to the students
table as shown below:
Key Features of JDBC:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4