Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Using PostgreSQL with Java

Introduction

Explanation: This tutorial covers how to use PostgreSQL with Java. It includes instructions on setting up the environment, connecting to a PostgreSQL database, and performing CRUD operations using JDBC.

Setting Up the Environment

Step 1: Install PostgreSQL

Follow the instructions for installing PostgreSQL on your operating system. Make sure the server is running.

Step 2: Add JDBC Driver

Download the JDBC driver for PostgreSQL from jdbc.postgresql.org and add it to your Java project.

Step 3: Create a Java Project

Create a new Java project in your IDE (e.g., Eclipse, IntelliJ IDEA).

Step 4: Configure JDBC Connection

Add the JDBC connection details to your Java project:


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

public class PostgreSQLJDBC {
    private static final String url = "jdbc:postgresql://localhost:5432/yourdbname";
    private static final String user = "yourusername";
    private static final String password = "yourpassword";

    public static void main(String[] args) {
        try {
            Connection connection = DriverManager.getConnection(url, user, password);
            System.out.println("Connected to PostgreSQL database");
        } catch (SQLException e) {
            System.out.println("Connection failure.");
            e.printStackTrace();
        }
    }
}
                
Connected to PostgreSQL database

Performing CRUD Operations

Creating a Table

Create a new table in your PostgreSQL database:


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

public class CreateTable {
    private static final String url = "jdbc:postgresql://localhost:5432/yourdbname";
    private static final String user = "yourusername";
    private static final String password = "yourpassword";

    public static void main(String[] args) {
        String createTableSQL = "CREATE TABLE IF NOT EXISTS employees ("
                + "id SERIAL PRIMARY KEY,"
                + "name VARCHAR(100),"
                + "department VARCHAR(50),"
                + "joining_date DATE)";

        try (Connection connection = DriverManager.getConnection(url, user, password);
             Statement statement = connection.createStatement()) {

            statement.execute(createTableSQL);
            System.out.println("Table created successfully");

        } catch (SQLException e) {
            System.out.println("Table creation failed.");
            e.printStackTrace();
        }
    }
}
                
Table created successfully

Inserting Data

Insert data into the table:


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

public class InsertData {
    private static final String url = "jdbc:postgresql://localhost:5432/yourdbname";
    private static final String user = "yourusername";
    private static final String password = "yourpassword";

    public static void main(String[] args) {
        String insertSQL = "INSERT INTO employees (name, department, joining_date) VALUES "
                + "('Alice', 'HR', '2022-01-10'),"
                + "('Bob', 'IT', '2022-02-15'),"
                + "('Charlie', 'Finance', '2022-03-20')";

        try (Connection connection = DriverManager.getConnection(url, user, password);
             Statement statement = connection.createStatement()) {

            statement.executeUpdate(insertSQL);
            System.out.println("Data inserted successfully");

        } catch (SQLException e) {
            System.out.println("Data insertion failed.");
            e.printStackTrace();
        }
    }
}
                
Data inserted successfully

Reading Data

Read data from the table:


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

public class ReadData {
    private static final String url = "jdbc:postgresql://localhost:5432/yourdbname";
    private static final String user = "yourusername";
    private static final String password = "yourpassword";

    public static void main(String[] args) {
        String selectSQL = "SELECT * FROM employees";

        try (Connection connection = DriverManager.getConnection(url, user, password);
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery(selectSQL)) {

            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String department = resultSet.getString("department");
                String joiningDate = resultSet.getString("joining_date");

                System.out.println("ID: " + id + ", Name: " + name + ", Department: " + department + ", Joining Date: " + joiningDate);
            }

        } catch (SQLException e) {
            System.out.println("Data retrieval failed.");
            e.printStackTrace();
        }
    }
}
                
ID: 1, Name: Alice, Department: HR, Joining Date: 2022-01-10
ID: 2, Name: Bob, Department: IT, Joining Date: 2022-02-15
ID: 3, Name: Charlie, Department: Finance, Joining Date: 2022-03-20

Updating Data

Update data in the table:


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

public class UpdateData {
    private static final String url = "jdbc:postgresql://localhost:5432/yourdbname";
    private static final String user = "yourusername";
    private static final String password = "yourpassword";

    public static void main(String[] args) {
        String updateSQL = "UPDATE employees SET department = 'Marketing' WHERE name = 'Alice'";

        try (Connection connection = DriverManager.getConnection(url, user, password);
             Statement statement = connection.createStatement()) {

            statement.executeUpdate(updateSQL);
            System.out.println("Data updated successfully");

        } catch (SQLException e) {
            System.out.println("Data update failed.");
            e.printStackTrace();
        }
    }
}
                
Data updated successfully

Deleting Data

Delete data from the table:


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

public class DeleteData {
    private static final String url = "jdbc:postgresql://localhost:5432/yourdbname";
    private static final String user = "yourusername";
    private static final String password = "your password";

    public static void main(String[] args) {
        String deleteSQL = "DELETE FROM employees WHERE name = 'Charlie'";

        try (Connection connection = DriverManager.getConnection(url, user, password);
             Statement statement = connection.createStatement()) {

            int rowsAffected = statement.executeUpdate(deleteSQL);
            System.out.println("Data deleted successfully. Rows affected: " + rowsAffected);

        } catch (SQLException e) {
            System.out.println("Data deletion failed.");
            e.printStackTrace();
        }
    }
}
                
Data deleted successfully. Rows affected: 1

Conclusion

Explanation: This concludes the tutorial on using PostgreSQL with Java. You've learned how to set up your environment, connect to a PostgreSQL database using JDBC, and perform basic CRUD operations (Create, Read, Update, Delete).