A)
import java.sql.Connection;
import java.sql.DriverManager;
class hybridconnection {
public static void main(String []args) throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Driver loaded");
Connection con= DriverManager.getConnection("jdbc:odbc:mydsn","scott","tiger");
System.out.println("connection established");
con.close();
System.out.println("connection closed");
}
}
Explanation of the program :
->by importing java.sql package we are making JDBC api available to the JDBC application.
->by importing java.sql package we are making JDBC api available to the JDBC application.
->for the main method exception specification is mentioned to avoid pre compilation errors. Because of non-handling of two checked exceptions.
1) java.long.classNotFoundException (class.forName place)
2) java.sql.SQLException (Drivermanager.getconnection and close)
->forName() loads specified driver class into memory. It can’t create the object of loaded driver class. It can’t register it with DriverManager with in every driver class, the fallowing code is implemented.
Ex:
importjava.sql.DriverManager;
importjava.sql.DriverManager;
class oracleDriver
{
static
{
oracleDriver d = new oracleDriver();
DriverManager.registerDriver(d);
}
}
//similarly,
class JdbcOdbcDriver
{
static
{
JdbcOdbcDriver c = new JdbcOdbcDriver();
DriverManager.registerDriver(c);
}
}
Note: As soon as any java class in loaded into memory, static block is implicitly (automatically) executed.
Comments
Post a Comment