Skip to main content

Q) Develop a JDBC application that connects to oracle server using JDBC-ODBC approach.



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

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

Popular posts from this blog

Q) What is JDBC driver? What is its role in java database connection?

A) ->A translation software written in java according o JDBC specification is nothing but “JDBC driver”. -> JDBC driver implements JDBC API. Use single API. JDBC driver role: They are 4 roles   1)       Establishing connection between JDBC client and database server. 2)       Receiving JDBC method calls made by JDBC client while performing database (CRUD) operations. 3)       Translating java method calls into DBMS understandable calls and forwarding them to database server. 4)       Receiving the results from database server. Translating them into java format and handling over the same to the JDBC client.

Q) What is ODBC?

A) ->open database connectivity is a technology from MS that enables any language program (other than java) to communication with database Management System. ->in java program ODBC is directly not allowed for the fallowing reasons 1) OS dependency 2) Procedural oriented approach 3) Security thread

Q) Retrieving data from database?

A)   ->to retrieve the data from database we need to submit SELECT statement from JDBC application. -> executeQuery() method of statement object is used for this purpose. This method has the fallowing ResultSet executeQuery(String sql) throws SQLException Ex: ResultSet rs = st.executeQuery(“SELECT * FROM ACCOUNT”); ->objectoriented representation of tables formate data is called ResultSet object. Ao the driver created one object i.e. ResultSet object. ->object orientation representation of a table of records returned from db is nothing but “ ResultSet ” object.