Jdbc ppt

Post on 25-May-2015

2.537 views 0 download

Tags:

Transcript of Jdbc ppt

By Rajan ShrivastavaWipro 1

•API for Java which defines how program can access a DB.•JDBC(TM) - developed by Sun Microsystems• Exploited an existing interface library (ODBC)• ODBC - Open Database Connectivity (C library)—standard Application Programming Interface for connecting to db; independent of programming languages, db systems, OS• ODBC - C programmers DB interface, early 1990's

JDBC Drivers Client-side adaptors that convert Java

program requests into a protocol that DBMS understands

4 types:1. Type 1—JDBC-ODBC bridge2. Type 2—Native API driver (converts JDBC

calls to DBMS API)3. Type 3—Network protocol driver—can

connect JDBC to middleware-net server4. Type 4—Driver-native protocol driver

(converts JDBC calls directly to DBMS protocol)

Loading a DriverManagerDriverManager provides DB interface methods & defines

objects which can connect Java app to driver; it manages set of drivers program can use to connect to db; finds driver & runs it to connect to db

Most Java programs use import to load a class With JDBC, usually load driver class at runtime:

import java.lang.*;public static void main (String args[]) {try { // this loads & initialises the driverClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");// now connect to DB ...

} catch (ClassNotFoundException e) {System.err.println(e.getMessage());e.printStackTrace();System.exit(1);

} }

Making a JDBC-ODBCDatabase Connection

import java.sql.*;Connection con;String URL = "jdbc:odbc:DataSource";String Username = "";String Password = "";con = DriverManager.getConnection(URL,Username, Password);// make more calls to JDBC methods here...con.close();

‘DataSource’ is a ‘logical name’ (not a real filename) Need to set DataSource = MyDatabase.mdb

elsewhere Use ODBC Data Source Administrator for this...

Statement and ResultSet ObjectsStatement stmt = con.createStatement();String sql = "SELECT * FROM Staff;";ResultSet rs = stmt.executeQuery(sql);print_rs(rs); // shown laterrs.close(); // free memorystmt.close();

Statement objects let you execute SQL queries: 3 types: Statement (simple, no parameters), Prepared Statement (precompiled queries), Callable Statement (execute call to db stored sql procedure)

Can pass any legal SQL query to executeQuery()Here, rs holds the entire results table (Staff)...

ResultSets and Cursors

Each ResultSet contains: Numbered Fields

(columns) Field names & types

(metadata) A Cursor (current row)

The ResultSet object is a ‘container’ for the results of a query (table):

•First cursor position is BEFORE FIRST ROW• Rows and columns COUNT FROM ONE•Move cursor via: rs.next(), previous(), first(), last(), relative(), absolute(), beforeFirst(), afterLast()

Copyright © 1997 Alex Chaffee

Type I DriversUse bridging technologyRequires installation/configuration on client

machinesNot good for Webe.g. ODBC Bridge

Copyright © 1997 Alex Chaffee

Type II DriversNative API driversRequires installation/configuration on client

machinesUsed to leverage existing CLI librariesUsually not thread-safeMostly obsolete nowe.g. Intersolv Oracle Driver, WebLogic

drivers

Type III DriversCalls middleware server, usually on

database hostVery flexible -- allows access to multiple

databases using one driverOnly need to download one driverBut it’s another server application to

install and maintaine.g. Symantec DBAnywhere

Type IV Drivers100% Pure Java -- the Holy GrailUse Java networking libraries to talk

directly to database enginesOnly disadvantage: need to download a

new driver for each database enginee.g. Oracle, mSQL