JDBC (Java Database Connectivity) is an API (Application Programming Interface) in Java that allows applications to connect to, interact with, and manipulate relational databases. It provides a standardized way for Java applications to communicate with various databases like MySQL, PostgreSQL, Oracle, SQLite, SQL Server, and more.

Key Features:

  • Connects Java applications with databases.
  • Executes SQL queries (SELECT, INSERT, UPDATE, DELETE).
  • Supports transactions and batch processing.
  • Works with different database drivers.

JDBC Code Example (Connecting to MySQL Database)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class JDBCExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String user = "root";
        String password = "password";
 
        try {
            // Step 1: Establish connection
            Connection conn = DriverManager.getConnection(url, user, password);
 
            // Step 2: Create a Statement object
            Statement stmt = conn.createStatement();
 
            // Step 3: Execute SQL query
            ResultSet rs = stmt.executeQuery("SELECT * FROM users");
 
            // Step 4: Process the ResultSet
            while (rs.next()) {
                System.out.println(rs.getInt("id") + " - " + rs.getString("name"));
            }
 
            // Step 5: Close the connection
            rs.close();
            stmt.close();
            conn.close();
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

JDBC Transactions Example

By default, each SQL statement is executed separately. Transactions allow multiple queries to be executed as a single unit.

try {
    conn.setAutoCommit(false);  // Start transaction
 
    stmt.executeUpdate("UPDATE accounts SET balance = balance - 500 WHERE id = 1");
    stmt.executeUpdate("UPDATE accounts SET balance = balance + 500 WHERE id = 2");
 
    conn.commit();  // Commit transaction
} catch (Exception e) {
    conn.rollback();  // Rollback on error
}