JDBC Introduction

Understanding Java Database Connectivity fundamentals

☕ What is JDBC?

JDBC (Java Database Connectivity) is a Java API that enables Java applications to interact with databases. It provides methods to query and update data in databases using standard SQL commands.


// Simple JDBC example
import java.sql.*;

public class JDBCExample {
    public static void main(String[] args) {
        System.out.println("Welcome to JDBC!");
    }
}
                                    

Output:

Welcome to JDBC!

Key JDBC Concepts

🔌

Driver

Bridge between Java and database

Class.forName("com.mysql.cj.jdbc.Driver");
🔗

Connection

Establishes link to database

Connection conn = DriverManager.getConnection(url);
📝

Statement

Executes SQL queries

Statement stmt = conn.createStatement();
📊

ResultSet

Holds query results

ResultSet rs = stmt.executeQuery("SELECT * FROM users");

🔹 JDBC Architecture

JDBC follows a layered architecture:

// JDBC Architecture Components
/*
1. Application Layer (Your Java Code)
2. JDBC API Layer (java.sql package)
3. Driver Manager Layer
4. Driver Layer (Database specific)
5. Database Layer
*/

// Basic JDBC workflow
import java.sql.*;

public class JDBCArchitecture {
    public static void main(String[] args) {
        try {
            // 1. Load Driver
            Class.forName("com.mysql.cj.jdbc.Driver");
            
            // 2. Create Connection
            Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/mydb", "user", "password");
            
            // 3. Create Statement
            Statement stmt = conn.createStatement();
            
            // 4. Execute Query
            ResultSet rs = stmt.executeQuery("SELECT 'Hello JDBC' as message");
            
            // 5. Process Results
            while(rs.next()) {
                System.out.println(rs.getString("message"));
            }
            
            // 6. Close Resources
            rs.close();
            stmt.close();
            conn.close();
            
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

Output:

Hello JDBC

🔹 JDBC Driver Types

JDBC supports four types of drivers:

  • Type 1: JDBC-ODBC Bridge (Deprecated)
  • Type 2: Native API Driver
  • Type 3: Network Protocol Driver
  • Type 4: Pure Java Driver (Most Common)
// Type 4 Driver Examples
// MySQL
Class.forName("com.mysql.cj.jdbc.Driver");

// PostgreSQL
Class.forName("org.postgresql.Driver");

// Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");

// SQL Server
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

🔹 Basic JDBC Setup

Essential imports and setup for JDBC:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCSetup {
    // Database connection parameters
    private static final String URL = "jdbc:mysql://localhost:3306/testdb";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "password";
    
    public static void main(String[] args) {
        Connection connection = null;
        
        try {
            // Establish connection
            connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
            System.out.println("Connected to database successfully!");
            
        } catch (SQLException e) {
            System.out.println("Connection failed: " + e.getMessage());
        } finally {
            // Always close connection
            if (connection != null) {
                try {
                    connection.close();
                    System.out.println("Connection closed.");
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

Output:

Connected to database successfully!

Connection closed.

🧠 Test Your Knowledge

What does JDBC stand for?