Hi , You can use the following of course if you are having a App Server in place: import javax.sql.*; import javax.naming.*; ..... ....... and within method Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); ht.put(Context.PROVIDER_URL,"t3://localhost:7001"); InitialContext ictx = new InitialContextFactory(ht); DataSource ds = (DataSource)ictx.lookup("some_jdbc_connection_pool_in_server"); Connection cn = ds.getConnection(); ......... then as usual whatever you want to do with connection .............. Hope this serves your need Regards K.Muthukumaran
posted 16 years ago
Hi, I want to do this without using my application server. how do i do this ? Any help is appreciated Hari
The user in the thread linked imports the driver and then does the equivalent thing to Class.forName(), except that their code is now hard-coded to the Driver class. Changing database DRivers requires them to recompile their code.
If you've every seen applications like Jira (bug tracking) and a whole bunch of others including anything that accesses a database a wondered 'How do they have code that can change databases so easily?', the answer is using either Class.forName() or a DataSource to make your code independent of the dtaabase type and Driver type.
You can also use the jdbc.drivers property to register a driver to the DriverManager e.g java -Djdbc.drivers=drivers MyProgram. Then you can skip the Class.forName("driver") since the driver will already be registered in the DriverManager.