It is actually the forName() method which does the work. forName() is a static method of Class; it causes the named class object to be loaded by a class loader. So the JDBC connection class is loaded into memory for access by the JVM.
The JDBC classes incorporate a static initialiser block, which is executed immediately after the class is loaded into memory; this static initialiser calls method which institute the actual connection.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com