|  
 
 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 Main {
 public static void main(String[] args) throws Exception {
 Connection connection = getConnection();
 // Do work with connection
 Statement statement = connection.createStatement();
 String selectEmployeesSQL = "SELECT * FROM employees";
 ResultSet resultSet = statement.executeQuery(selectEmployeesSQL);
 
 while (resultSet.next()) {
 printEmployee(resultSet);
 }
 resultSet.close();
 statement.close();
 connection.close();
 }
 
 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(); // Obtain connection from pool
 }
 
 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(resultSet.getString("last_name") + ", ");
 System.out.print(resultSet.getString("first_name") + ", ");
 System.out.println(resultSet.getString("email"));
 }
 
 }
 
 
 
 |