Java Database Connectivity Jdbc2827

download Java Database Connectivity Jdbc2827

of 21

Transcript of Java Database Connectivity Jdbc2827

  • 7/25/2019 Java Database Connectivity Jdbc2827

    1/21

    Java Database Connectivity

    JDBC

  • 7/25/2019 Java Database Connectivity Jdbc2827

    2/21

    JDBC

    Open Database Connectivity developed by

    Microsoft to provide interaction withdatabases using SQL.

    Use the D!C"OD!C bridge to #a$e

    OD!C wor$ with ava.

    ODBC

    % ava %&' for e(ecuting SQL state#ents.

    )(tends the ava language.

    Supported by the *ava.s+l pac$age

  • 7/25/2019 Java Database Connectivity Jdbc2827

    3/21

    Java Program

    java.sql package

    JDBC-ODBC Bridge

    ODBC Database Client

    MS-Access ODBC

    Client

    Oracle ODBC

    Client

    Oracle Database

    ClientMiddleare

    Client

    Middleare Server

    Oracle Database

    Client

    DB! Database

    Client

    MS-Access Server Oracle Server DB! Server

  • 7/25/2019 Java Database Connectivity Jdbc2827

    4/21

    JDBC Components

    Driver Manager" loads the database drivers, and #anages the

    connection between the application and the driver.

    Driver" translates %&' calls into operations for a specific data

    source.Connection" % session between an application and a database.

    Statement" %n SQL state#ent to perfor#.

    PreparedStatement" a preco#piled and stored +uery.

    "es#ltSet " logical set of data returned by e(ecuting a state#ent.

    MetaData " 'nfor#ation about the returned data -resultset

    including the attribute na#es and types.

  • 7/25/2019 Java Database Connectivity Jdbc2827

    5/21

    Steps In Using JDBC

    $mport t%e necessar& classes

    import java.sql.*;

    'oad t%e JDBC driver

    Class.forName(sun.jdbc.odbc.JdbcOdbcDriver;

    $denti(& t%e data so#rce

    !trin" source#$% & jdbc'odbc'testdb;

    Allocate a Connection object

    Connection dbConnect &

    Driverana"er."etConnection(source#$%)usr)pd;

    Allocate a Statement object

    !tatement stmt & dbConnect.create!tatement( ;

  • 7/25/2019 Java Database Connectivity Jdbc2827

    6/21

    Steps In Using JDBC

    )*ec#te a q#er& #sing t%e Statement object$esult!et rst & stmt.e+ecute,uer-(!elect * from

    mp/bl 0ere salar- 123333;

    "etrieve data (rom t%e "es#ltSet object

    if ( rst 4& null 5

    rst.ne+t(;

    !trin" 6name & rst."et!trin"(name;

    double 6salar-& rst."etDouble(salar-; 7

    Close t%e "es#ltSet

    rst.close( ;

    Close t%e Statement object

    stmt.close( ;

    Close t%e Connection object

    dbConnect.close( ;

  • 7/25/2019 Java Database Connectivity Jdbc2827

    7/21

    import java.sql.*;

    public class PlainJDBC {

    public static void main(String args[ ! {

    i" (args.l#ngt$ %& '! {

    Sst#m.out.println()sag#+ java JDBC custid)!; Sst#m.#,it('!;

    -

    int custD & nt#g#r.pars#nt(args[/!; String qu#r & n#0 String ()S#l#ct 1itl#2 3#ar2 1p# "rom 4rd#rs 42 1itl#s 12 1ap#s 5 ) 6

    )0$#r# 5.1ap#d&4.1ap#d and 1.1itl#d&5.1itl#d and ) 6

    )Status & 747 and ) 6 )4.Custom#rD& ) 6 custD!;

    tr {

    88 s#t t$# driv#r

    Class."or9am#()sun.jdbc.odbc.Jdbc4dbcDriv#r)!;

    88ma:# conn#ction

    Conn#ction dbConn#ct & Driv#ranag#r.g#tConn#ction()jdbc+odbc+jdbc

  • 7/25/2019 Java Database Connectivity Jdbc2827

    8/21

    pac8a"e m-servlets;

    import java.io.*;import java.sql.*;

    import java.util.*;

    import java+.servlet.*;

    import java+.servlet.0ttp.*;

    public class mpData9 e+tends :ttp!ervlet 5

    public void doet(

    :ttp!ervlet$equest request)

    :ttp!ervlet$esponse response

    t0ros !ervlet+ception)

  • 7/25/2019 Java Database Connectivity Jdbc2827

    9/21

    tr- 5 Class.forName(=sun.jdbc.odbc.JdbcOdbcDriver=;

    Connection m-Conn & Driverana"er."etConnection(=jdbc'odbc'empdir=;

    !tatement stmt & m-Conn.create!tatement(;

    $esult!et m-$esult!et & stmt.e+ecute,uer-(=select * from emplo-ee=;

    if (m-$esult!et 4& null 5 0ile (m-$esult!et.ne+t( 5

    eid & m-$esult!et."et!trin"(=empid=;

    last & m-$esult!et."et!trin"(=lastname=;

    first & m-$esult!et."et!trin"(=firstname=;

    e+t & m-$esult!et."et!trin"(=e+tension=; out.println(= @tr1An@td1= F eid F =@>td1@td1= F

    last F =@>td1@td1= F first F =@>td1@td1= F

    =@>td1@>tr1=;

    7 >* of 0ile *>

    7 >* of if *>

    stmt.close(;

    m-Conn.close(;

    out.println(=@>table1An @>bod-1An@>0tml1=;

    7

    catc0 (+ception e 5out.println(=Could not connect4An=;

    7

    7>> end of doet

    public void do6ost(:ttp!ervlet$equest request) :ttp!ervlet$esponse response

    t0ros !ervlet+ception) > end of do6ost

    7>> end of class mpData

  • 7/25/2019 Java Database Connectivity Jdbc2827

    10/21

    /ht#l0

    /head0

    /title01)S1 2)! &%3)/4title0

    /#eta http"e+uiv56Content"1ype6 content56te(t4ht#l60/4head0

    /body bgcolor56788888860

    /center0/h901esting Servlets/4h90/4center0

    /p0/4p0/h:01est Modules;/4h:0

    /a href56servlet4#yservlets.)#pData60)#ployee Database Listing

    /4a0/br0

    /4body0

    /4ht#l0

    HTML File Using mpData Servlet

  • 7/25/2019 Java Database Connectivity Jdbc2827

    11/21

    A JS!"S#o$mp%&sp' Using JDBC@0tml1 @0ead1@title1mplo-ee Database@>title1@>0ead1

    @HI pa"e lan"ua"e&=java= import&=java.sql.*= H1

    @bod-1

    @091mplo-ee %istin"@>091@table border&=9= idt0&=E33=1

    @tr1 @td1@b1b1@>td1@td1@b1%ast Name@>b1@>td1

    @td1@b1Girst Name@>b1@>td1@td1@b1+tension@>b1@>td1 @>tr1

    @H Class.forName(=sun.jdbc.odbc.JdbcOdbcDriver=;

    Connection m-Conn & Driverana"er."etConnection(=jdbc'odbc'empdir=;

    !tatement stmt & m-Conn.create!tatement(;

    $esult!et m-$esult!et & stmt.e+ecute,uer-(=select * from emplo-ee=;

    if (m-$esult!et 4& null 5

    0ile (m-$esult!et.ne+t( 5 !trin" eid & m-$esult!et."et!trin"(=empid=;

    !trin" last & m-$esult!et."et!trin"(=lastname=;

    !trin" first & m-$esult!et."et!trin"(=firstname=;

    !trin" e+t & m-$esult!et."et!trin"(=e+tension=;

    H1@tr1

    @td1@H& eid H1@>td1 @td1@H& last H1@>td1

    @td1@H& first H1 @>td1 @td1@H& e+t H1 @>td1

    @>tr1

    @H 7 >* of 0ile *>

    7 >* of if *>

    stmt.close(; m-Conn.close(;

    H1

    @>table1@>bod-1@>0tml1

  • 7/25/2019 Java Database Connectivity Jdbc2827

    12/21

    /ht#l0

    /head0

    /title01)S1 2)! &%3)/4title0

    /#eta http"e+uiv56Content"1ype6 content56te(t4ht#l60/4head0

    /body bgcolor56788888860

    /center0/h901esting ava Server &ages/4h90/4center0

    /p0/4p0/h:01est Modules;/4h:0

    /a href5

  • 7/25/2019 Java Database Connectivity Jdbc2827

    13/21

    JDBC Reference"es#ltSet

    @ Provid#s acc#ss to r#cords r#sulting "rom a qu#r.

    METHODS:

    public void after%ast ( t0ros !,%+ception

    @ mov#s t$# cursor to t$# #nd o" t$# r#sult s#t.

    public void beforeGirst ( t0ros !,%+ception@ mov#s t$# cursor to t$# b#ginning o" t$# r#sults#t.

    public void cancel$o#pdates ( t0ros !,%+ception@ canc#ls an updat#s mad# to t$is ro0.

    public void close( t0ros !,%+ception@ clos#s t$# r#sults#t.

    public void delete$o ( t0ros !,%+ception

    @ d#l#t#s t$# curr#nt ro0 "rom t$# r#sults#t and t$# databas#.

    public void first ( t0ros !,%+ception

    @ mov#s t$# cursor to t$# "irst ro0 o" t$# r#sults#t.

    public void last ( t0ros !,%+ception

    @ mov#s t$# cursor to t$# last ro0 o" t$# r#sults#t.

  • 7/25/2019 Java Database Connectivity Jdbc2827

    14/21

    JDBC Reference"es#ltSet

    METHODS:

    public boolean "etoolean (!trin" cname t0ros !,%+ception

    @ r#turns t$# valu# o" t$# nam#d column(cnam#! in Bool#an "ormat.

    public Date "etDate (!trin" cname t0ros !,%+ception

    @ r#turns t$# valu# o" t$# nam#d column(cnam#! in Dat# "ormat.

    public double "etDouble (!trin" cname t0ros !,%+ception

    @ r#turns t$# valu# o" t$# nam#d column(cnam#! in Doubl# "ormat.

    public float "etGloat (!trin" cname t0ros !,%+ception

    @ r#turns t$# valu# o" t$# nam#d column(cnam#! in Aloat "ormat.

    public int "et

  • 7/25/2019 Java Database Connectivity Jdbc2827

    15/21

    JDBC Reference"es#ltSet

    METHODS:

    public void insert$o ( t0ros !,%+ception

    @ ins#rts t$# cont#nts o" t$# ins#rt ro0 into t$# r#sult s#t and databas#.

    $esult!et rst & stmt.e+ecute,uer-(!%C/ * G$O 6%O;

    rst.move/o

  • 7/25/2019 Java Database Connectivity Jdbc2827

    16/21

    JDBC Reference"es#ltSet

    METHODS:

    public void ne+t ( t0ros !,%+ception

    public void previous ( t0ros !,%+ception

    @ us# to navigat# on# ro0 "or0ard or bac:0ard in t$# r#sults#t.

    public boolean relative (int ros t0ros !,%+ception

    @ mov#s a sp#ci"i#d numb#r o" ro0s "rom t$# curr#nt r#cord. 5alu# "or ro0s can b# 6 or @.

    public void updateoolean(!trin" cname) boolean b t0ros !,%+ception

    public void update-te(!trin" cname) b-te b t0ros !,%+ception

    public void updateDate(!trin" cname) Date b t0ros !,%+ception

    public void updateDouble(!trin" cname) double b t0ros !,%+ception

    public void updateGloat(!trin" cname) float b t0ros !,%+ception

    public void update

  • 7/25/2019 Java Database Connectivity Jdbc2827

    17/21

    JDBC Reference

    "es#ltSetMetaData

    @ Provid#s m#ta@in"ormation about t$# tp#s and prop#rti#s o" t$# columns in a r#sults#t.

    $esult!et rst & stmt.e+ecute,uer-(!%C/ * G$O 6%O;

    $esult!etetaData meta & rst."etetaData( ;

    int cols & meta."etColumnCount(;

    !trin" struffer&;

    for (int 8&9; 8@&cols; 8FFstruffer F& meta."etColumnName(8;

    METHODS:

    public int "etColumnCount ( t0ros !,%+ception@ r#turns t$# numb#r o" columns in t$# r#sult s#t.

    public !trin" "etColumnName (int inde+ t0ros !,%+ception@ r#turns t$# nam# o" t$# column in t$at column ind#,.

    public !trin" "etColumn/-peName (int inde+ t0ros !,%+ception

    @ r#turns t$# nam# o" t$# S> tp# o" t$# sp#ci"i#d column.

    public !trin" "et/ableName (int inde+ t0ros !,%+ception

    @ r#turns t$# nam# o" t$# tabl# "or t$# sp#ci"i#d column.

    public boolean is$eadOnl- (int inde+ t0ros !,%+ception

    public boolean is?ritable (int inde+ t0ros !,%+ception

    @ r#turns tru# i" column is r#ad onl80ritabl#.

  • 7/25/2019 Java Database Connectivity Jdbc2827

    18/21

    JDBC Reference

    Statement

    @ =#pr#s#nts an #mb#dd#d S> stat#m#nt and is us#d b an application to p#r"orm databas# acc#ss.

    Class.forName(=sun.jdbc.odbc.JdbcOdbcDriver=;

    Connection m-Conn & Driverana"er."etConnection(=jdbc'odbc'empdir=;

    !tatement stmt & m-Conn.create!tatement(;

    $esult!et m-$esult!et & stmt.e+ecute,uer-(=select * from emplo-ee=;

    METHODS:

    public boolean e+ecute(!trin" sql t0ros !,%+ception

    public $esult!et e+ecute,uer-(!trin" sql t0ros !,%+ception

    public int e+ecute#pdate(!trin" sql t0ros !,%+ception

    @ 1$# execute( )m#t$od r#turns tru# i" t$# stat#m#nt $as r#sults#ts to proc#ss. 1$#

    executeQuery( )m#t$od is us#d to #,#cut# a qu#r sp#ci"i#d in t$# string sql. 1$#

    executeUpdate( )m#t$od is us#d to p#r"orm updat#s; it r#turns t$# numb#r o"

    ro0s a""#ct#d b t$# updat#.

    !tatement stmt & m-Conn.create!tatement(; int r & stmt.e+ecute#pdate(

  • 7/25/2019 Java Database Connectivity Jdbc2827

    19/21

    JDBC Reference

    ?,ampl#+ Cr#ating a scrollabl# =#sultS#t

    Class.forName(=sun.jdbc.odbc.JdbcOdbcDriver=;

    Connection m-Conn & Driverana"er."etConnection(=jdbc'odbc'empdir=;

    !tatement stmt &

    m-Conn.create!tatement($esult!et./6Q!C$O%%Q

  • 7/25/2019 Java Database Connectivity Jdbc2827

    20/21

    JDBC Reference

    Pr#par#d Stat#m#nts

    @ ?,t#nds t$# Stat#m#nt int#r"ac# and #nabl#s a S> stat#m#nt to contain param#t#rs li:#

    a "unction d#"inition. 3ou t$#n can #,#cut# a singl# stat#m#nt r#p#at#dl 0it$ di""#r#nt valu#s "or t$os#

    param#t#rs.

    ?,ampl#+

    Class.forName(=sun.jdbc.odbc.JdbcOdbcDriver=;

    Connection m-Conn & Driverana"er."etConnection(=jdbc'odbc'empdir=;

    6repared!tatement stmt &

    m-Conn.prepare!tatement(#6DB/ emplo-ee F

    !/ salar- & salar- * R ?:$ emp

  • 7/25/2019 Java Database Connectivity Jdbc2827

    21/21

    JDBC Reference

    Batc$ Proc#ssing 0it$ Pr#par#d Stat#m#nts

    @ Similar proc#ssing actions ar# #,#cut#d as a singl# group in batc$ proc#ssing.

    ?,ampl#+

    Class.forName(=sun.jdbc.odbc.JdbcOdbcDriver=;Connection m-Conn & Driverana"er."etConnection(=jdbc'odbc'empdir=;

    6repared!tatement stmt &

    m-Conn.prepare!tatement(#6DB/ emplo-ee F

    !/ salar- & salar- * R ?:$ emp