Oracle JDBC drivers can be grouped into two main categories with the following attributes:
The following figure illustrates how JDBC components and the driver run in the same memory space as an applet.
The following figure illustrates how the Oracle JDBC OCI drivers run in a separate memory space from your Java application. These JDBC drivers make OCI calls to a separately loaded file.
Note: Don't confuse the terms JDBC and JDBC drivers. All Java applications, no matter how they are developed or where they execute, ultimately use the JDBC-level drivers to connect to Oracle. However, coding using the pure JDBC API is low-level development, akin to using the Oracle Call Interface (OCI) to develop a database application. Like the OCI, the JDBC API provides a very powerful, but also very code-intensive, way of developing an application.
Embedding SQL in Java Programs
About SQL
Choosing a JDBC driver