Java by API/javax.naming/InitialContext
InitialContext: lookup(String name)
<source lang="java">
/*
* */
import java.sql.Connection; import javax.naming.InitialContext; import javax.sql.DataSource; public class Main {
public static void main(String[] args) throws Exception { String dsn = args[0]; System.out.println("Attempting to connect to " + dsn); try { System.out.println("Initializing the naming context..."); InitialContext init = new InitialContext(); System.out.println("Looking up " + dsn); DataSource source = (DataSource) init.lookup(dsn); System.out.println("Establishing a connection..."); Connection connection = source.getConnection(); System.out.println("Connect to " + connection.getCatalog() + " a success!"); } catch (Exception e) { e.printStackTrace(); } }
}
</source>
new InitialContext()
<source lang="java">
/*
* */
import java.sql.Connection; import javax.naming.InitialContext; import javax.sql.DataSource; public class Main {
public static void main(String[] args) throws Exception { String dsn = args[0]; System.out.println("Attempting to connect to " + dsn); try { System.out.println("Initializing the naming context..."); InitialContext init = new InitialContext(); System.out.println("Looking up " + dsn); DataSource source = (DataSource) init.lookup(dsn); System.out.println("Establishing a connection..."); Connection connection = source.getConnection(); System.out.println("Connect to " + connection.getCatalog() + " a success!"); } catch (Exception e) { e.printStackTrace(); } }
}
</source>
new InitialContext(Hashtable<?, ?> environment)
<source lang="java">
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")); }
}
</source>