JDBC stands for Java Database Connectivity. JDBC is a Java API or tool used in Java applications to interact with the database. It is a specification from Sun Microsystems that provides APIs for Java applications to communicate with different databases. Interfaces and Classes for JDBC API comes under java.sql package. In this Java JDBC tutorial, we will be learning about what is Java Database Connectivity with suitable example.
In the present world, where we mostly deal with websites and databases it is as if they matter the most but if we closely look over it is data that matters the most. If we look closer that all developers are revolving and working over the web and mobile technologies but what remains the same is the data.

Hence, there is an urgency to figure out how data is being handled for which this concept comes into play.

Let us do have an overview of why do we need this term which can be better interpreted with the image provided below.
Why do we need to learn advanced java?
As we are well versed with all the concepts of Core Java now comes the time to build projects that will results out in building an application as a final product. So if we do are only aware of core java we can only build applications that can be run on the machine where the components of it are stored(in simpler words one can say where all the codes are written). These types of applications are known as standalone applications.

Note: Standalone applications being one of two types of applications in the programming world only holds for 5% of the applications in the real world.
Hence, the scope is very constricted if we only do build standalone applications resulting out in the very little scope of development and scalability which gives birth to advance java which in turn gives birth to 3 components primarily namely JSP, Servlets, and JDBC in order to make the applications run on multiple machines. With the evolution of these 3 components, it removes the constraint of running only a single machine as it was impractical to users in the real-world application is made but forcing users to install then use them. Now, these types of applications are known as web applications that are the applications providing the services to the end-users without installing them. These applications are known as web applications which are not standalone applications.
Now you must be wondering what is JSP and Servlet and how JDBC is interrelated with them. For the time being, just focus only on JDBC in order to get started with what exactly it is and how to use it by referring to the image depicted below as follows:

Note: Conclusion drawn from Image is as follows:
- JSP stands for Java Server Pages where these pages are considered as View Components as Presentation logic.
- Servlet is meant for internal processing going on such as reading, fetching values from the database, comparison, etc in the backend as Processing Logic in our process servlet. Servlets do also contain java classes for this background processing for processing logic.
- JDBC is meant for Connectivity of Java Application in servlets as discussed to our Database.
What is JDBC?
Let us try to discuss this from scratch till now in the java domain we were simply writing codes(programming) and interacting with the database. Have you ever wonder imagining how internally our program can be linked to a database giving it enormous power to make projects and applications out of our program. Yes, it is possible with the help of this mechanism. Let us discuss in a real-world scenario which later on we will be mapping with technical terms to get an absolute technical understanding of the same with a pictorial representation.

Real-world example:
Consider two places A and B. Now people residing on A do not know the language of people residing on place B and vice-versa which we will be going to map with technical terms to discuss out major components inside the JDBC.

Mapping the same with technological terms to illustrate above real illustration. Here place A is referred to as a java application and place B is therefore referred to as a database. Now the translator as discussed above which is responsible for converting java application calls to database calls and database calls to java application calls is nothing but a 'Driver Software'. The road between applications is 'Connection' and lastly the vehicle is our 'statement object'. Now 'requirement' above is our SQL query and the 'small block' generated after processing the SQL statement by the database engine has been passed in nothing but 'ResultSet'. Now, this technology by which java applications is communicating with database is 'Java Database Connectivity. By now we are done with a crystal clear overview of JDBC and geek you will be surprised that we already have covered it, let dig down to get to know the working of components which will be described up to greater depth in the environment setup of JDBC.
Now we will penetrate down into the JDBC component which as discussed above is a technology that is used to connect Java applications with the database. It is an API consisting of lots of classes and interfaces by which with the help of some classes and interfaces we are able to connect the java application to the database as pictorially depicted above. It has mainly two packages namely as follows: java.sql package and javax.sql package.
Note: For reference above SQL is taken as database to illustrate packages names.

Interfaces and Classes of JDBC API
Some popular interfaces of JDBC API are listed below:
- Driver interface
- Connection interface
- Statement interface
- PreparedStatement interface
- CallableStatement interface
- ResultSet interface
- ResultSetMetaData interface
- DatabaseMetaData interface
- RowSet interface
Some important Classes of JDBC API are listed below:
- DriverManager class
- Blob class
- Clob class
- Types class
So here is how we are going to cover JDBC ailments in order to get how technically the whole process revolves.
- What is JDBC
- Need of JDBC
- JDBC Architecture
- JDBC Environment Setup
- Steps to connect JDBC
- JDBC example as implementation
JDBC Architecture

To know in-depth about the above diagram, you can refer this article Architecture of JDBC .
JDBC Environment Setup
Now let us do discuss out various types of drivers in JDBC. So basically there are 4 types of standard drivers listed below:
Now, you must be wondering about they are their point do come out which drivers to be used. The solution to this is as simple as we need to use the driver as per accordance with the database with which we are interacting.
Note: Drivers to be used are directly propionate to which kind of database with which we are dealing.
Drivers are mentioned in the tabular format below corresponding to the database which is as follows:
|
MySQL | com.mysql.jdbc.Driver |
Now you must be wondering out from where these listed drivers are to be imported. So in order to import the drivers, you need to download a JAR file from the web. Considering the most frequently used database namely MySQL you need to download a JAR file named 'mysql.connector' and so on it goes for other databases.
Note: It is not an essential step as different IDE's possesses different traits. In some IDE these connectors are inbuilt such as NetBeans while in Eclipse you need to import this JAR file as discussed above by simply downloading corresponding JAR file from the internet and load in the project.
If you do not know how to import JAR files to libraries in java IDE, first go through this step.

Steps to connect JDBC
There are basically seven steps to get your java application connected to deal with the database. Here database could be structured or non-structured, we have to deal accordingly for the same which will be clear by the end of sequential steps execution. In generic mostly we deal with either MySQL or Oracle database as far it is concerned for our java application. Here we will be dealing out with the MySQL database for our java application wherein processing we just have to execute these listed steps below in sequential order to connect JDBC which is as follows:
- Import the required package for the corresponding database.
- Load and register the JDBC drivers.
- First load then register the same
- Establish the connection
- Create a statement
- Execute the query
- Process the results
- Close the connections
Let us discuss the above steps by picking up cases from the real world to get a clear sake of understanding our concept. Considering an illustration of mobile networking which is as follows:
Real-life implementation of JDBC is most frequently seen in mobile networking which is illustrated as follows:
- Consider you want to talk to somebody far away. For which one needs a device known as cell-phone/telecom which signifies our Step 1.
- Now user needs a network and a SIM card which is equivalent to the loading and registering process signifying Step 2.
- Now with a working SIM card, physical labor is required to dial numbers and pressing the call button signifying step 3 as we are trying to establish the connection to commute.
- Whatever message we need to deliver is equivalent to creating a statement.
- Now once connected we need to speak the message as we have thought off, which is equivalent to the execution of the query.
- Now a response will be received which was our goal signifies step 6 of processing results technically in the case of JDBC.
- Lastly, we need to press the button on the device to close communication, similarly, it is a good practice of closing the connections in the technical aspect which here is JDBC.
Implementation (Working of JDBC)
- Suppose the database with which we want to deal is MySQL. So first we need to import the package, for SQL database it is namely 'java.sql.*'.
- Now as per IDE(we need to load its corresponding JAR file in our project in IDE where JAR is manually supposed to be inserted in the IDE, taking 'eclipse IDE' for reference as an IDE in order to illustrate the same in the below example.
- By far we are done with importing the JAR to our project. Now in order to load the driver, we will be using forName() method by writing “com.mysql.driver_name” which belongs to class 'class'
Syntax:
class com.mysql.jdbc.Driver ;
- Now in order to establish the connection, we have to instantiate an interface named 'Connection'
- Now statements are of three types:
- Normal statements:
- Prepared statements:
- Callable statements: Stored procedures
- Once the statement is created, now we will be executing the query in our database as per the perceived response from the database. Suppose if we want to fetch data from the database then the response is table structure here or if we are simply inserting the values then response if the number of rows effectively.
- Lastly, whatever we are getting either a table or simply rows, now we simply need to process the results.
- Also, it is recommended to good practice by closing the connections to release and free up memory resources by closing the object of interface and statement objects.
Illustration: Setting up JDBC
Java
// Java Program to Illustrate Setting Up of JDBC
// Importing SQL database
import java.sql.*;
// Main class to illustrate demo of JDBC
class GFG {
// Main driver method
public static void main(String[] args) throws Exception
{
// Loading and registering drivers
// Optional from JDBC version 4.0
Class.forName("oracle.jdbc.OracleDriver");
// Step 2:Establishing a connection
Connection con = DriverManager(
"jdbc:oracle:thin:@localhost:1521:XE",
"username", "password");
// Step 3: Creating statement
Statement st = con.createStatement();
// Step 4: Executing the query and storing the
// result
ResultSet rs = st.executeQuery(
"select * from Students where Marks >= 70");
// Step 5: Processing the results
while (rs.next()) {
System.out.println(rs.getString("students"));
System.out.println(rs.getInt("marks"));
}
// Step 6: Closing the connections
// using close() method to release memory resources
con.close();
// Display message for successful execution of program
System.out.println("Steps in Setting Up of JDBC");
}
}
Output
Steps in Setting Up of JDBC
Now let us move ahead and discuss its interaction with the real database after successfully setting up with the database how internally things are getting managed. Here we will be having to create two classes, one is our connection class and the other one where we will be implementing in application.java class using the connector object. We are done with the connection class in the above illustration, so let us now finally discuss the application class with help of an example. Considering the database 'MySQL here to interpret and code out the same.
Implementation: Query in our MySQL database is as follows:
select * from Student;
insert into Students values(7, geeksforGeeks);
select username from Student where userid = 7;
Example:
Java
// Java Program to Illustrate Working Of JDBC
// with Above Query in Database
// Importing required classes
import java.io.*;
import java.util.*;
// Main class
// JDBC demo class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing arguments that
// needed to be passed later in getConnection()
String url = "jdbc:mysql://localhost/test";
String uname = "root";
String pass = "";
// Query from the database taken
// Custom query taken to illustrate
String query
= "select username from Student where id=7";
// Loading and registering drivers
Class.forName("com.mysqljdbc.Driver");
// Creating an connection object by
// getConnection() method which is static method and
// returns the instance of Connection class
// This method takes 3 parameters as defined above
Connection con
= DriverManager.getConnection(url, uname, pass);
Statement st = con.createStatement();
// It returns a tabular structure so we need
// ResultSet as it stores chunk of data into
// structures
ResultSet rs = st.executeQuery(query);
// Now we are having our data in object of ResultSet
// which is no more tabular
// Note:
// Fetching the above data by storing it as a String
// Here pointer is lagging with data for which we
// use next() method to
// take it to next record
rs.next();
// Here we are fetching username column data
String name = rs.getString("username");
// Lastly print the data
System.out.println(name);
// It is good practice to close the connection
// using close() method
// Closing the statement first
st.close();
// Now close the connection also
con.close();
}
}
Output
GeeksforGeeks
Similar Reads
Java Tutorial Java is a high-level, object-oriented programming language used to build web apps, mobile applications, and enterprise software systems. It is known for its Write Once, Run Anywhere capability, which means code written in Java can run on any device that supports the Java Virtual Machine (JVM).Java s
10 min read
Basics
Introduction to JavaJava is a high-level, object-oriented programming language developed by Sun Microsystems in 1995. It is platform-independent, which means we can write code once and run it anywhere using the Java Virtual Machine (JVM). Java is mostly used for building desktop applications, web applications, Android
4 min read
Java Programming BasicsJava is one of the most popular and widely used programming language and platform. A platform is an environment that helps to develop and run programs written in any programming language. Java is fast, reliable and secure. From desktop to web applications, scientific supercomputers to gaming console
4 min read
Java MethodsJava Methods are blocks of code that perform a specific task. A method allows us to reuse code, improving both efficiency and organization. All methods in Java must belong to a class. Methods are similar to functions and expose the behavior of objects.Example: Java program to demonstrate how to crea
8 min read
Access Modifiers in JavaIn Java, access modifiers are essential tools that define how the members of a class, like variables, methods, and even the class itself can be accessed from other parts of our program. They are an important part of building secure and modular code when designing large applications. Understanding de
7 min read
Arrays in JavaArrays in Java are one of the most fundamental data structures that allow us to store multiple values of the same type in a single variable. They are useful for storing and managing collections of data. Arrays in Java are objects, which makes them work differently from arrays in C/C++ in terms of me
15+ min read
Java StringsIn Java, a String is the type of object that can store a sequence of characters enclosed by double quotes, and every character is stored in 16 bits, i.e., using UTF 16-bit encoding. A string acts the same as an array of characters. Java provides a robust and flexible API for handling strings, allowi
9 min read
Regular Expressions in JavaIn Java, Regular Expressions or Regex (in short) in Java is an API for defining String patterns that can be used for searching, manipulating, and editing a string in Java. Email validation and passwords are a few areas of strings where Regex is widely used to define the constraints. Regular Expressi
7 min read
OOPs & Interfaces
Classes and Objects in JavaIn Java, classes and objects are basic concepts of Object Oriented Programming (OOPs) that are used to represent real-world concepts and entities. The class represents a group of objects having similar properties and behavior, or in other words, we can say that a class is a blueprint for objects, wh
11 min read
Java ConstructorsIn Java, constructors play an important role in object creation. A constructor is a special block of code that is called when an object is created. Its main job is to initialize the object, to set up its internal state, or to assign default values to its attributes. This process happens automaticall
10 min read
Java OOP(Object Oriented Programming) ConceptsJava Object-Oriented Programming (OOPs) is a fundamental concept in Java that every developer must understand. It allows developers to structure code using classes and objects, making it more modular, reusable, and scalable.The core idea of OOPs is to bind data and the functions that operate on it,
13 min read
Java PackagesPackages in Java are a mechanism that encapsulates a group of classes, sub-packages, and interfaces. Packages are used for: Prevent naming conflicts by allowing classes with the same name to exist in different packages, like college.staff.cse.Employee and college.staff.ee.Employee.They make it easie
8 min read
Java InterfaceAn Interface in Java programming language is defined as an abstract type used to specify the behaviour of a class. An interface in Java is a blueprint of a behaviour. A Java interface contains static constants and abstract methods. Key Properties of Interface:The interface in Java is a mechanism to
12 min read
Collections
Exception Handling
Java Exception HandlingException handling in Java allows developers to manage runtime errors effectively by using mechanisms like try-catch block, finally block, throwing Exceptions, Custom Exception handling, etc. An Exception is an unwanted or unexpected event that occurs during the execution of a program, i.e., at runt
10 min read
Java Try Catch BlockA try-catch block in Java is a mechanism to handle exceptions. This make sure that the application continues to run even if an error occurs. The code inside the try block is executed, and if any exception occurs, it is then caught by the catch block.Example: Here, we are going to handle the Arithmet
4 min read
Java final, finally and finalizeIn Java, the final, finally, and finalize keywords play an important role in exception handling. The main difference between final, finally, and finalize is listed below:final: The final is the keyword that can be used for immutability and restrictions in variables, methods, and classes.finally: The
4 min read
Chained Exceptions in JavaChained Exceptions in Java allow associating one exception with another, i.e. one exception describes the cause of another exception. For example, consider a situation in which a method throws an ArithmeticException because of an attempt to divide by zero.But the root cause of the error was an I/O f
3 min read
Null Pointer Exception in JavaA NullPointerException in Java is a RuntimeException. It occurs when a program attempts to use an object reference that has the null value. In Java, "null" is a special value that can be assigned to object references to indicate the absence of a value.Reasons for Null Pointer ExceptionA NullPointerE
5 min read
Exception Handling with Method Overriding in JavaIn Java, an exception is an unwanted or unexpected event that occurs during a program's execution, i.e., at runtime, and disrupts the normal flow of the programâs instructions. Exception handling in Java handles runtime errors and helps maintain the program's normal flow by using constructs like try
5 min read
Java Advanced
Java Multithreading TutorialThreads are the backbone of multithreading. We are living in the real world which in itself is caught on the web surrounded by lots of applications. With the advancement in technologies, we cannot achieve the speed required to run them simultaneously unless we introduce the concept of multi-tasking
15+ min read
Synchronization in JavaIn multithreading, synchronization is important to make sure multiple threads safely work on shared resources. Without synchronization, data can become inconsistent or corrupted if multiple threads access and modify shared variables at the same time. In Java, it is a mechanism that ensures that only
10 min read
File Handling in JavaIn Java, with the help of File Class, we can work with files. This File Class is inside the java.io package. The File class can be used to create an object of the class and then specifying the name of the file.Why File Handling is Required?File Handling is an integral part of any programming languag
6 min read
Java Method ReferencesIn Java, a method is a collection of statements that perform some specific task and return the result to the caller. A method reference is the shorthand syntax for a lambda expression that contains just one method call. In general, one does not have to pass arguments to method references.Why Use Met
9 min read
Java 8 Stream TutorialJava 8 introduces Stream, which is a new abstract layer, and some new additional packages in Java 8 called java.util.stream. A Stream is a sequence of components that can be processed sequentially. These packages include classes, interfaces, and enum to allow functional-style operations on the eleme
15+ min read
Java NetworkingWhen computing devices such as laptops, desktops, servers, smartphones, and tablets and an eternally-expanding arrangement of IoT gadgets such as cameras, door locks, doorbells, refrigerators, audio/visual systems, thermostats, and various sensors are sharing information and data with each other is
15+ min read
JDBC TutorialJDBC stands for Java Database Connectivity. JDBC is a Java API or tool used in Java applications to interact with the database. It is a specification from Sun Microsystems that provides APIs for Java applications to communicate with different databases. Interfaces and Classes for JDBC API comes unde
12 min read
Java Memory ManagementJava memory management is a fundamental concept that involves the automatic allocation and deallocation of objects, managed by the Java Virtual Machine (JVM). The JVM uses a garbage collector to automatically remove unused objects, freeing up memory in the background. This eliminates the need for de
5 min read
Garbage Collection in JavaGarbage collection in Java is an automatic memory management process that helps Java programs run efficiently. Java programs compile to bytecode that can be run on a Java Virtual Machine (JVM). When Java programs run on the JVM, objects in the heap are created, which is a portion of memory dedicated
7 min read
Memory Leaks in JavaIn programming, a memory leak happens when a program keeps using memory but does not give it back when it's done. It simply means the program slowly uses more and more memory, which can make things slow and even stop working. Working of Memory Management in JavaJava has automatic garbage collection,
3 min read
Practice Java
Java Interview Questions and AnswersJava is one of the most popular programming languages in the world, known for its versatility, portability, and wide range of applications. Java is the most used language in top companies such as Uber, Airbnb, Google, Netflix, Instagram, Spotify, Amazon, and many more because of its features and per
15+ min read
Java Programs - Java Programming ExamplesIn this article, we will learn and prepare for Interviews using Java Programming Examples. From basic Java programs like the Fibonacci series, Prime numbers, Factorial numbers, and Palindrome numbers to advanced Java programs.Java is one of the most popular programming languages today because of its
8 min read
Java Exercises - Basic to Advanced Java Practice Programs with SolutionsLooking for Java exercises to test your Java skills, then explore our topic-wise Java practice exercises? Here you will get 25 plus practice problems that help to upscale your Java skills. As we know Java is one of the most popular languages because of its robust and secure nature. But, programmers
7 min read
Java Quiz | Level Up Your Java SkillsThe best way to scale up your coding skills is by practicing the exercise. And if you are a Java programmer looking to test your Java skills and knowledge? Then, this Java quiz is designed to challenge your understanding of Java programming concepts and assess your excellence in the language. In thi
1 min read
Top 50 Java Project Ideas For Beginners and Advanced [Update 2025]Java is one of the most popular and versatile programming languages, known for its reliability, security, and platform independence. Developed by James Gosling in 1982, Java is widely used across industries like big data, mobile development, finance, and e-commerce.Building Java projects is an excel
15+ min read