import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import oracle.jdbc.pool.OracleDataSource;
public class JndiDataSource {
static Connection conn = null;
static Statement stmt = null;
static ResultSet rs = null;
static Context ctx = null;
static DataSource ds = null;
public static void main(String args[]) throws Exception {
String sp = "com.sun.jndi.fscontext.RefFSContextFactory";
String file = "file:/e:/JNDI";
String dataSourceName = "jdbc/myDatabase";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, sp);
env.put(Context.PROVIDER_URL, file);
ctx = new InitialContext(env);
bindDataSource(ctx, dataSourceName);
DataSource ds = null;
ds = (DataSource) ctx.lookup(dataSourceName);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Name FROM Employees");
while (rs.next())
System.out.println(rs.getString("name"));
ctx.close();
rs.close();
stmt.close();
conn.close();
ctx.close();
conn.close();
}
public static void bindDataSource(Context ctx, String dsn) throws SQLException, NamingException {
OracleDataSource ods = new OracleDataSource();
ods.setUser("yourName");
ods.setPassword("mypwd");
ods.setDriverType("thin");
ods.setDatabaseName("ORCL");
ods.setServerName("localhost");
ods.setPortNumber(1521);
ctx.rebind(dsn, ods);
}
}
|