Java/Database SQL JDBC/JDNI Datasource

Материал из Java эксперт
Перейти к: навигация, поиск

Setup JDNI Datasource

   <source lang="java">

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;
 }

}

      </source>