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) Explain repeated deletion of records.

A) //RepeatedDeletion.java import java.util.Scanner; import java.sql.*; class RepeatedDeletion {        public static void main(String[] args) {               Connection con= DriverManager. getConnection ( "jdbc:odbc:prince" , "scott" , "tiger" );               PreparedStatement ps=con.PreparedStatement( "DELETE FROM ACCOUNT WHERE ACCNO=?" );               Scanner s= new Scanner(System. in );               while ( true )               {                      System. out .println( "Enter accno : " );      ...

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.  

Q) What is the purpose of JDBC?

A) -> Java application can do any task by making a method (function) call. ->java method calls are not understandable to database management system. They can understand only SQL statements. ->SQL statements can’t be directly used in a java application. Java compiler complains. ->therefore, we say that java environment and database environment are heterogeneous to each other. Purpose of JDBC: ->for any kind of java application to communicate with any kind of database (management system) in a standard manner, JDBC is used.