The direct way to register the driver is,
DriverManager.registerDriver(new OracleDriver);//just an example
What Class.forName("Driver") does is, It will register the driver by calling the same method DriverManager.registerDriver(new OracleDriver);
See the below example,
Class SampleDriver{
SampleDriver(){}
static{
DriverManager.registerDriver(new SampleDriver());
}
}
Note: As you all know, The static block will be called when we load a class. That means when we put Class.forName("SampleDriver") the static block will be called where the DriverManager.registerDriver(new SampleDriver()) is invoked.
From the Sun's JDBC Guide at http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/drivermanager.html
If a has been written so that loading it causes an instance to be created and also calls DriverManager.registerDriver with that instance as the parameter (as it should do), then it is in the DriverManager's list of drivers and available for creating a connection.
First the DriverManager tries to use each driver in the order it was registered. (The drivers listed in jdbc.drivers are always registered first.) It will skip any drivers that are untrusted code unless they have been loaded from the same source as the code that is trying to open the connection.
It tests the drivers by calling the method Driver.connect on each one in turn, passing them the URL that the user originally passed to the method DriverManager.getConnection. The first driver that recognizes the URL makes the connection.
hi, please eplain me thread concepts and synchnization deeply with some examples specially synchronization.
ReplyDeleteI'll provide it soon..
ReplyDeleteor Can see this link: http://onlinejavapapers.blogspot.in/2012/12/synchronization-in-java.html