Professional Documents
Culture Documents
0DVWqUHV ,$'%$
"
3K3 /DQJDJH VLPSOH W\SDJH G\QDPLTXH HWF $3, 64/ ,PEULFDWLRQ DYHF +70/ SURWRFROH +773
$FFqV j OD %'
5pYpODWHXU 3RLQW IRUW DUFKLWHFWXUH 3RLQW IDLEOH LQFRKpUHQFH GHV PRWHXUV GH[pFXWLRQ
,QWHUDFWLRQ 6*%' /3
3ULQFLSH OHFWXUH PLVHjMRXU pFULWXUH /D %' DVVXUH OD SHUVLVWDQFH &RSLH GHV GRQQpHV SHUVLVWDQWHV GDQV OHV VWUXFWXUHV GX SURJUDPPH ! WUDQVLHQWHV /H SURJUDPPH PHW j MRXU OHV GRQQpHV WUDQVLHQWHV 5HFRSLH GHV GRQQpHV WUDQVLHQWHV VXU OH 6*%' 4XHVWLRQV 3RUWDELOLWp 6*%' '\QDPLFLWp VWUXFWXUHV GH GRQQpHV 'LVWULEXWLRQ GHV GRQQpHV HW GHV WUDLWHPHQWV
0DVWqUHV ,$'%$
Embedded SQL86
EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; char *dbaccess="bda10/bda@T:zazie:o1"; VARCHAR ename[50]; VARCHAR job[40]; VARCHAR dname[40]; EXEC SQL END DECLARE SECTION; char Buf[1024]; connection(); EXEC SQL DECLARE csa CURSOR FOR SELECT e.ename, e.job, d.dname FROM emp e, dept d, WHERE e.deptno = d.deptno ORDER BY d.dname, e.ename;
EXEC SQL OPEN csa ; val=0; /* compteur du nombre de tuples */ while (1) { EXEC SQL WHENEVER NOT FOUND DO break; EXEC SQL FETCH csa INTO :ename, :job, :dname; i=ename.len; while(ename.arr[i-1]== ) i--; ename.arr[i]=\0; printf("%s # ", ename.arr); i=job.len; while(job.arr[i-1]== ) i--; job.arr[i]=\0; printf("%s # ", job.arr); i=dname.len; while(dname.arr[i-1]== ) i--; dname.arr[i]=\0; printf("%s \n ", dname.arr); val++; } EXEC SQL CLOSE csa; printf("%d\n",val); deconnection();
(PEHGGHG 64/ /H FRGH VRXUFH HVW QRUPDOLVp )RQFWLRQV GH OD OLEUDLULH QRQ QRUPDOLVpHV 5HTXrWHV VWDWLTXHV 3UpFRPSLODWHXU SURSULpWDLUH &RPSLODWLRQ HQ
Prcompilateur SQL
Code C "pur" .c
Compilateur C
SUpVHQFH GX 6*%'
Editeur de liens
Excutable
0DVWqUHV ,$'%$
&
$16,
'
0DVWqUHV ,$'%$
&RQIRUPLWp j 64/
QLYHDX[ GH FRQIRUPLWp j OD QRUPH &RUH 64/ VXSSRUW
IUDPHZRUN FRUH IRXQGDWLRQV ELQGLQJ VW\OH 64/&/, RX 64/360 RX 64/%LQGLQJV RX DX PRLQV 64/ SDFNDJH GDWHWLPH LQWHJULW\ 2/$3 360 &/, 64/ )ODJJHU
@)prhr vqr
0DVWqUHV ,$'%$
&RXFKH ORJLFLHOOH TXL SHUPHW OLQVHUWLRQ GH FRPPDQGHV 64/ FRPPH SDUDPqWUHV GH IRQFWLRQV
Brv qr qpr
Brv qr qpr
Brv qr qpr
Brv qr qpr
Brv qr qpr
Trr
Uhvrr
Uhvrr
Uhvrr
Brv qr qpr
Qprhv
Uhvrr
Uhvrr
Uhvrr
Qprhv 8yvr
Qprhv
Qprhv
Qprhv
Qprhv
Ahpryvsvt
Apv uvvt
9hhuvvt
0DVWqUHV ,$'%$
"
(W LQGXVWULHOOHV
/HV DUFKLWHFWXUHV PXOWLQLYHDX[ VH JpQpUDOLVHQW (OOHV SHUPHWWHQW OLQWpJUDWLRQ GHV VWDQGDUGV V\VWqPHV GLQIRUPDWLRQ RXYHUWV
64/ SRXU OHV EDVHV GH GRQQpHV ;0/ VWDQGDUG pPHUJHDQW SRXU O(', HWF
3UpVHQWDWLRQ GH -DYD
8Q WUqV JURV VXFFqV 3RXUTXRL " 'HV GRPDLQHV GXWLOLVDWLRQ GH OD WHFKQRORJLH -DYD WUqV YDULpV 8Q VRXWLHQ WUqV IRUW GHV JUDQGV DFWHXUV GX PLOLHX LQIRUPDWLTXH 'HV UDLVRQV WHFKQLTXHV
0DVWqUHV ,$'%$
+LVWRULTXH
/DQJDJH UpFHQW OLp j OpYROXWLRQ G,QWHUQHW SURMHW 2$. 6XQ 0LFURV\VWHPV /DQJDJH SRXU IDYRULVHU OD FRPPXQLFDWLRQ GHV DSSDUHLOV GRPRWLTXHV DEDQGRQ G2$. PDLV UHSULVH GH OD WHFKQRORJLH SRXU ODGDSWHU j XQ QRXYHDX ODQJDJH j GHVWLQDWLRQ G,QWHUQHW DQQRQFH RIILFLHOOH OH -'. YHUVLRQ DFWXHOOH OH -'.
-'.
-'. -DYD 'HYHORSPHQW .LW /H ODQJDJH GH SURJUDPPDWLRQ HW VRQ FRPSLODWHXU /D PDFKLQH YLUWXHOOH SRXU OH[pFXWLRQ GHV SURJUDPPHV /HV $3, $SSOLFDWLRQ 3URJUDPPLQJ ,QWHUIDFH ELEOLRWKqTXHV GH FODVVHV HQ VWDQGDUG ! 8Q HQVHPEOH GRXWLOV MDYD MDYDF MGE MDYDGRF MDU
0DVWqUHV ,$'%$
&
'RPDLQHV GXWLOLVDWLRQ
/H ODQJDJH HVW FRQoX GH WHOOH PDQLqUH TXH OHV
,QWHUQHW
*pQpUDWLRQ GH FRQWHQX :HE 6HUYOHWV -63 &RGH PRELOH DSSOHWV -DYD :HE 6WDUW &RPPXQLFDWLRQ GHV SURJUDPPHV YLD OH UpVHDX 50,
'
GH[SORLWDWLRQV DFWXHOV
8QL[ 6RODULV OLQX[ :LQGRZV 0DF 26
$FFqV DX EDVHV GH GRQQpHV 6WUDWpJLH -DYD G2UDFOH /D SOXSDUW GHV %' GLVSRVHQW GH SLORWHV -'%&
0DVWqUHV ,$'%$
FHUWDLQHV GLIILFXOWpV
+pULWDJH VLPSOH 3DV GH SRLQWHXUV 7\SDJH IRUW *HVWLRQ DXWRPDWLTXH GH OD PpPRLUH SDV GH IUHH QL GH PDOORF
j GH PXOWLSOHV IRQFWLRQQDOLWpV JUkFH j GHV $3, GH KDXW QLYHDX /DQJDJH VLPSOH j SUHQGUH HQ PDLQ PDLV SDV OLPLWp
!
Systme d'exploitation
:LQGRZV
javac
java
8QL[
SURJMDYD
SURJFODVV
(WF
0DVWqUHV ,$'%$
-'%& LQWURGXFWLRQ
,QWHUIDFH -DYD SRXU OD FRQQH[LRQ j GHV EDVHV GH GRQQpHV UHODWLRQQHOOHV $3, -DYD SRXU OH 64/ G\QDPLTXH
9vrE978
!!
-'%& UpVXPp
9vrHhhtr 8rpv
rtvr9vr9vr
9vr
tr8rpvy
Thrr
QrhrqThrr
8hyyhiyrThrr
rrprRry rrprVqhry
rrprRr rrprVqhr
@rpr
SryTr
trYYYvfpy
vTvt
0DVWqUHV ,$'%$
!"
rtvr9vr9vr
9vr
tr8rpvy
Thrr
QrhrqThrr
8hyyhiyrThrr
rrprRry rrprVqhry
rrprRr rrprVqhr
@rpr
SryTr
trYYYvfpy
vTvt
!#
/D FODVVH VWDWHPHQW
6WDWHPHQW
Vrqr"pyhrrprhqrvpvTRG8ryyrpvyhy
vyrrrqrppryrvpvTRGpyprhvr
"puqrvpvhyr)
rrprVqhr9@G@U@ASPHH6fU67G@XC@S@IPH2 Y0
QqrvpvTRGqrvrjwrvryrirqrhtpr qvsvpr
rrprRrT@G@8UASPHH6fU67G@0
QqrhryTRGprprhvrqrqprqryhihrSrvr SryTrrriyrqrpyh
rrpr hqvyrvrqrqryvpvTRGhvprrrr
vrjwqhyrphqvpvTRGtppprqhvrr SrvrrvyrvrSryTr
0DVWqUHV ,$'%$
!$
/D FODVVH 5HVXOW6HW
5HVXOW6HW
tqrhiyrhqryvtrprhyrpyhqrrrryh
srqrqryvrhtpr
Qyvrpuqrrvyryrpyrqryhsr)
rtrUrv Tvt0pqryhpyr
vhqpSryrrpvrrhtprGh
puqrnext() rrqrhrjyhhtprvhr@yyrrvr
true
vyrvrrprrqrhtpryprhvrfalse
vDyrvrhqrpuqrprevious()E978!vqvqr ryyrpuqrrrhqpyhprrqhyr!qvrpv
!%
public Vector getNomsImages() throws SQLException,RemoteException{ Vector noms = new Vector(); Statement stmt = connexion.createStatement(); ResultSet rset = stmt.executeQuery("SELECT ENAME FROM EMP"); while(rset.next()) noms.addElement(rset.getString(1)); stmt.close(); return noms; }
0DVWqUHV ,$'%$
!&
rtvr9vr9vr
'ULYHUV
tr8rpvy
6WDWHPHQW
3UHSDUHG6WDWHPHQW
&DOODEOH6WDWHPHQW
rrprRry rrprVqhry
rrprRr rrprVqhr
@rpr
5HVXOW6HW
trYYYvfpy
vTvt
!'
'ULYHU0DQDJHU
8yhrvh!{yr)
vrjwryvrqr9vrprr0 hrjyhyvphvyrqvrprqhjyVSGhvr
Qrrqirvrprvjihrqrqpr
puqr
&RQQHFWLRQ
TiyvrrhhpvhrprihrqrqprBqryrhsrqr vpvTRGyrhyvqhvryrhyhv)
puqr
QrrqrpprrvhprqryhpyhrThrr
puqr
FUHDWH6WDWHPHQWvrvrrvhprqrThrr
0DVWqUHV ,$'%$
!(
Connection connexion; // ... public void connect() throws SQLException, RemoteException{ String s = "jdbc:oracle:thin:tanguy/philippe@penfret:1521:BASETEST"; DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); connexion = DriverManager.getConnection(s); }
"
/D FODVVH 3UHSDUHG6WDWHPHQW
3UHSDUHG6WDWHPHQW
GrhhqrhpjyvpvTRGjyhvqrqrpuqr
setType(position,valeur)
rD #$0 rTvt!8p
public void miseAJourEmploi(String ename,String job) throws SQLException,RemoteException { PreparedStatement pstmt = connexion.prepareStatement( "UPDATE EMP SET JOB=? WHERE ENAME=?"); pstmt.setString(1,job); pstmt.setString(2,ename); pstmt.executeUpdate(); pstmt.close(); }
0DVWqUHV ,$'%$
"
UHJLVWHU'ULYHU'ULYHU
'ULYHUV
JHW&RQQHFWLRQXUO
6WDWHPHQW
3UHSDUHG6WDWHPHQW
&DOODEOH6WDWHPHQW
H[HFXWH4XHU\ H[HFXWH8SGDWH
([HFXWH
5HVXOW6HW
JHW;;;LQW_QRPBFRO
vTvt
"!
/D FODVVH &DOODEOH6WDWHPHQW
&DOODEOH6WDWHPHQW
Qrrqryvryrppqrpxprqhyhihr GrpqrTRGhvrrrphexecuteUpdate(...) hvyhryjr
ppqrpxprrppryhvqrr
public void creerEmpVide(String ename) throws SQLException,RemoteException{ CallableStatement cstmt = connexion.prepareCall("{call insertion_image_vide(?)}"); cstmt.setString(1,ename); cstmt.execute(); cstmt.close(); }
0DVWqUHV ,$'%$
""
/HV PpWDGRQQpHV
5HVXOW6HW0HWD'DWD
6rqrppvvyriwrSryTr tppp
IirqrpyrprrqhyrSryTrqrpyr vivyvpq hssrpryhhyryyjrpyr
GvhprqSryTrHrh9hhrirrhyhpuqr)
'DWDEDVH0HWD'DWD
6rqrppvvyhihrqrqpr
Uhiyrrvhrq vyvhrvrqvpvqppvr
G vhprrirrhyhpyhr8rpv)
h8rv trHrh9hh0
"#
&ODVVHV GH -'%&
Driver Statement Connection ResultSet ResultSetMetaData DatabaseMetaData
E978
PreparedStatement
Array
Blob
Clob
Ref
SQLData
SQLInput
SQLOutput
Struct
CallableStatement
-DYDXWLO'DWH
-DYDODQJ2EMHFW
'DWH
7LPH
7LPHVWDPS
'ULYHU0DQDJHU
'ULYHU3URSHUW\,QIR
7\SHV
http://java.sun.com/products/jdk/1.3/docs/guide/jdbc/getstart/GettingStartedTOC.fm.html
0DVWqUHV ,$'%$
"$
ODBC driver
9vrvyrq svr vqvrhiyr
Autre SGBD
Oracle Local
Oracle distant
"%
Browser
+773
Appli JAVA
Appli JAVA
8yvr Y
-'%& -'%&
BASETEST
PL/SQL JSP
Oracle LQWHUMedia
1er tier
Phpyr'vrrrsr
0DVWqUHV ,$'%$
"&
Select ENAME, SAL FROM E, G, S WHERE DUR > 12 AND E.ENO = G.ENO AND E.TITLE = S.TITLE
Tokyo Paris
Qhvwrp
"'
&RQFOXVLRQ
0DVWqUHV ,$'%$
"(