PooledConnectionExample.java Source code

Java tutorial

Introduction

Here is the source code for PooledConnectionExample.java

Source

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.ConnectionPoolDataSource;
import javax.sql.PooledConnection;

public class PooledConnectionExample {

    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

        try {
            connection = getConnection();
            statement = connection.createStatement();
            String selectEmployeesSQL = "SELECT * FROM employees";
            resultSet = statement.executeQuery(selectEmployeesSQL);

            while (resultSet.next()) {
                printEmployee(resultSet);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            closeAll(resultSet, statement, connection);
        }
    }

    //Obtain connection from pool
    private static Connection getConnection() throws NamingException, SQLException {
        InitialContext initCtx = createContext();
        String jndiName = "HrDS";
        ConnectionPoolDataSource dataSource = (ConnectionPoolDataSource) initCtx.lookup(jndiName);
        PooledConnection pooledConnection = dataSource.getPooledConnection();
        return pooledConnection.getConnection();
    }

    private static InitialContext createContext() throws NamingException {
        Properties env = new Properties();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
        env.put(Context.PROVIDER_URL, "rmi://localhost:1099");
        InitialContext context = new InitialContext(env);
        return context;
    }

    private static void printEmployee(ResultSet resultSet) throws SQLException {
        System.out.print(resultSet.getInt("employee_id"));
        System.out.print(", ");
        System.out.print(resultSet.getString("last_name"));
        System.out.print(", ");
        System.out.print(resultSet.getString("first_name"));
        System.out.print(", ");
        System.out.println(resultSet.getString("email"));
    }

    private static void closeAll(ResultSet resultSet, Statement statement, Connection connection) {
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
            } // nothing we can do
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
            } // nothing we can do
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
            } // nothing we can do
        }
    }
}