Transcript Document

SQL (Structured Query Language)
X/OPEN Call Level Interface For SQL
ODBC (Open DataBase Connectivity) API
JDBC (Java DataBase Connectivity) API
SQL (Structured Query Language)
SQL89, SQL92, SQL3
X/OPEN Call Level Interface
ODBC API
JDBC-ODBC
Bridge
JDBC API
Client
Application GUI
Database Server
JDBC API
Network Interface
SQL Results
SQL Requests
SQL Results
SQL Requests
Network Connection
JDBC API defines a set of interfaces and classes to be used
for communicating with a database.
Client
Application
Database Server
JDBC Driver
Database Libraries
Network Interface
SQL Results
SQL Requests
SQL Results
SQL Requests
Network Connection
JDBC Driver: translates java into SQL.
JDBC drivers are implemented by database vendors.
JDBC supports the ANSI SQL92 Entry Level standard.
JDBC supports:
•ANSI SQL92 Entry Level Standard
•Improvements of SQL89
•meta-data
•DDL statements
•Vendor independent syntax for using
•stored procedures
•scalar functions
•outer joins
Note:
Since no syntax checking is performed by JDBC,
it is possible to execute any SQL statements at the expense of
portability.
Trusted Applications:
Any stand-alone applications that are stored in local drives and
have access to local resources.
Downloaded applets are untrusted applications.
They cannot write to local files, open arbitrary network connections,
or even read environment variables.
One way to make applets trusted is by code signing.
JDBC applets are restricted from opening network connections to
any host other than the one in which they are downloaded.
Guideline for security:
•Never allow untrusted applets direct access to your database.
•User should be required to provide credentials for every connection
made.
•User credentials should not come from a local source such as a
current login ID.
•All drivers should be tested and approved as JDBC COMPLIANT.
Components of JDBC:
•The java.sql package
•The test suite
•The JDBC-ODBC bridge
What you need to develop programs in JDBC API?
1. A SQL92 compliant database.
2. A JDBC driver for your database.
3. The java Development Toolkit version 1.1 (JDK 1.1)
JDBC Driver Types:
Driver Type
Description
1. ODBC-JDBC Bridge
Map JDBC calls to ODBC
driver calls on the client.
2. Native API-Part Java
Maps JDBC calls to native
calls on the client.
3. JDBC Network-All Java
Maps JDBC calls to network
protocol, which calls native
methods on server.
Directly calls RDBMS from
the client machine.
4. Native Protocol-All Java
Type I: JDBC-ODBC Bridge Driver
Client
Application
JDBC Driver
Local Disk
ODBC Driver
Network Interface
SQL Requests
SQL Results
Proprietary Database Protocol
Network Interface
Stand-Alone Applications run on Local Machine
JDBC Driver: translates java calls into ODBC calls.
Harder to debug, slower, not work for applets.
Inexpensive, readily available.
Database
Server
Type II: Native-API-Partly Java Driver
Client
Application
JDBC Driver
Local Disk
Native Database Libraries
(Call Level Interface)
Network Interface
SQL Requests
SQL Results
Proprietary Database Protocol
Network Interface
JDBC Driver: use local libraries to communicate
with database server. Java calls are translated into
local CLI calls.
Faster than the ODBC bridge, not work for applets.
Database
Server
Type III: JDBC-Net-All-Java Driver
Client
Application
JDBC Driver
(Client)
Local Disk
Network Interface
SQL Requests
SQL Results
JDBC Driver Network Protocol
Network Interface
•JDBC Driver: client calls are translated into
driver-specific network protocol.
•JDBC Driver: server listenser translates the
requests into CLI calls at server site.
•All database-specific code resides on the
server.
•JDBC driver network protocol is not
Server
JDBC Driver
(Server Listenser)
Database
Native Database Libraries
(Call Level Interface)
Type III: JDBC-Net-All-Java Driver
•JDBC driver network protocol is not standardized.
•It implies that compatible client and server drivers
from a specific vendor must be used.
•It can be used over internet.
Type IV: Native-Protocol-All-Java Driver
Client
Application
Local Disk
JDBC Driver
Network Interface
SQL Requests
SQL Results
Proprietary DB Protocol (in Java)
Network Interface
•JDBC Driver: 100% java and use no CLI
native libraries.
•Support applets containing the driver to be
downloaded over the network, I.e., applets can
communicate directly with the database.
Server
Database