Jdbc ppt

12
By Rajan Shrivastava Wipro 1

Transcript of Jdbc ppt

Page 1: Jdbc ppt

By Rajan ShrivastavaWipro 1

Page 2: Jdbc ppt

•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

Page 3: Jdbc ppt

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)

Page 4: Jdbc ppt

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

} }

Page 5: Jdbc ppt

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

Page 6: Jdbc ppt

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

Page 7: Jdbc ppt

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()

Page 8: Jdbc ppt

Copyright © 1997 Alex Chaffee

Type I DriversUse bridging technologyRequires installation/configuration on client

machinesNot good for Webe.g. ODBC Bridge

Page 9: Jdbc ppt

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

Page 10: Jdbc ppt

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

Page 11: Jdbc ppt

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

Page 12: Jdbc ppt