Java/Database SQL JDBC/JDNI Datasource
Setup JDNI Datasource
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;
import com.mysql.jdbc.jdbc2.optional.*;
import javax.sql.*;
import javax.naming.*;
import java.util.*;
public class SetupJNDIDataSource {
public static void main(String args[]) {
if (args.length < 2) {
System.out.println("usage: SetupJNDIDataSource username password");
return;
}
try {
startRegistry();
ConnectionPoolDataSource dataSource = createDataSource(args[0], args[1]);
InitialContext context = createContext();
context.rebind("HrDS", dataSource);
} catch (Exception e) {
System.out.println("SetupJNDIDataSource err: " + e.getMessage());
e.printStackTrace();
}
}
private static void startRegistry() throws RemoteException {
LocateRegistry.createRegistry(1099);
System.out.println("RMI registry ready.");
}
private static ConnectionPoolDataSource createDataSource(String username, String password) {
MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource();
dataSource.setUser(username);
dataSource.setPassword(password);
dataSource.setServerName("localhost");
dataSource.setPort(3306);
dataSource.setDatabaseName("chapter04_jdbc21");
return dataSource;
}
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;
}
}