Tntoc he't toi xin chan thanh cam on thay Trinh Quoe Lztdng la nguiJi da huong dan eli toi dU(jc hoan thanh dg tai dung hgn. Thay Triln Van ling, co Thd da giup toi tim hiiu vg ngon ngl1 l(ip trlnh Java. Xin cam on tett ca thay co khoa CNTT TruiJng Dgi hQc Dan Lq.p Ngogi Ngl1 - Tin HQc Thanh Pho' H6 Chi Minh, anh chj sinh vien eli truoc, cdc bgn sinh vien ci:tngkhoa eta t(in tlnh giup do. Do trlnh elQva thiJi gian co phan hgn che' cang nhu sZ:ftie'p thu, hiiu bie't gido trlnh chua cao nen chdc chdn vifc hifn thZ:fCdg tai se co nhdu thie'u sot, chua elu(jc nhu y muon. Ra't mong nh(in dU(jc sZ:fdong gop y kien ala tett ca thay co. Xin chan thanh can1 Un ! ".
Thdng 7 nam 2001 Sinh vien th~tc hifn dg tai Bi:tiMinh Khai
LOI NOI DAD
•
Ngay nay Internet
dUQc xern Ia rn(H thanh ttfu khoa hQc ky thu?t n6i
b?t va vI dqi nha't trong Iich sa Ioai nguoi va Ia ngu1ln thong tin IOn nha't. Do do ngay nay khi noi de'n vi<%cxay dtfng nhG'ng chuang nguoi ta thuong chuang
rlnh
d€ C?P de'n nhung (tng d~mg Web.
dqng
client/server
tren
cac
rnqng
trlnh may tinh,
Th~IC cha't Ia nhG'ng
intranet/
internet.
Cac
chuang trlnh UUl'\vi<%c khong chI gidi h~n tren rnQt may don Ie rna con phan tan tren nhi€u may dUQc d~t d nhG'ng vi tri khac nhau. Cac h<%th6ng dUQc xay dtfng tren n€n tang kie'n truc nhu V?y thuong
dUQc gQi Ia nhG'ng h<%
th6ng thong tin nhi€u tgng. Khi do tu client vdi trlnh duy<%tWeb Browser co th~ truy C?P de'n cac server chlia co sd dG' Ii<%u.
ta
Cac ngu6n dft Ii<%udtIQC quan Iy bdi cac h<%quan tri khac nhau nen vi<%cthie't ke' cac (tng dl;lng cho phep chqy tren nhi€u h<%di€u hanh khac nhau la ra't kho khan. Do ngon ngG' Java la ngon nglt dqng rna byte nen co thti ling vie't rnQt 19n nhttng c6 th~ ch~y rnQi nai, nen ngon nglt Java cling dUQc ling dl;lng Web sa dl;lng ph6 bi€n. Java cling cho phep tqO cac k€t n6i
d€n cac ngu6n
co sd
dG' dUQc quan Iy bdi cac h<%quan tri
co sd
dG' Ii<%ukhac
nhau. Sa dl;lng serviet vdi vi<%ctruy C?P dG' Ii<%uta co th~ xay dtfng nhG'ng trang Web "dQng" han. Do d6 ngon ngG' HTML ke't hQp vdi ngon ngG' Java d~ thi€t k€ trong d€ tai nay va ngu6n dlt li<%udUQC sa dtfng tu Microsoft Access. Cac thao tac tren dG' Ii<%udUQc th~tc hi<%ntren Server thong qua cac servIet, sau do tra ke't qua cho may client.
Trang 3
Chlidng 1.
GIOI THltUVE NGON NGU HTML
1.1. Gidi thi~u chung ngon ngli html. 1.1.1. HyperText Markup Language 1.1.2. HyperText va HyperLink 1.1.3.URL (Uniform Resource Locator)
:
1.2. Thie't Ke' Trang Web 1.2.1. Te;tomQt Trang HTML 1.2.2. MQt s6 HTML tag
5 5 5 6 7 7 8
1.2.3. £>inh de;tngbang
12
Chlidng 2. GIOI THIEU . VE JDBC - KET NOI CO
Sa DU LIEU.
2.1. Ca c trlnh di~u khi6n JDBC
15
2.2. Kie'n truc cua JDBC
17
2.2.1. T6ng Quan V~ JDBC
17
2.2.2. Kie'n Tru c JD BC ...........................................................
17
2.3. K€t N6i Co sa Dli Li~u
19
3.3.1. ODBC (32 bits)
19
3.3.2. Ke't n6i co sa dli li~u 2.4. Applet vdi g6i swing 3.4.1. MQt s610p thong dl;lllg 3.4.2. Dung Swing trong Applet..
Chlidng 3.
a
22 32 32 38
L~P TRINH TREN WEB VOl SERVLET
3 .1. M dfi u 3.2 Servlet la gl ? 3.3 Cach vie't rnQt servlet.. 3.3.1 Chltong trlnh don gian
49 49 50 50
Trang
3.3.2 Sa dl;lllg go chua servlet.. 3.4 Servlet voi HTML 3.4.1 U ng dl;lllg d(;lnghtml.. 3.4.2 Servlet di€u khi€n html.. 3.4.3 Html di€u khi€n chuang trlnh servlet (form) 3.4.4 Shtml di€u khi€n chuang trlnh servlet
52 54 54 55 56 58
Chuang 4.
GIAO THUC HTTP 4.1 HO(;ltdQng cua giao thuc HTTP 4.2 Yeu c~u phuang thuc POST va GET Chu'dng
,
I
•
67
s. CAC
5.1 5.2 5.3 5.4
63
ca CHE TRAO DOl THONG TIN TREN ,,'
,,?,...
"
Truy€n thong gil1a ung dl;lllgdQc l~p va servlet.. E>i€ukhi€n servlet til Web browser. Truy€n thong gil1a cac applet Truy€n thong gil1a applet va servlet..
WEB 69 74 79 87
Chuang 6. ,,?
~
,,~
"
TONG QUAN VE CHUaNG TRINH DE TAl. 6.1 Ca"u truc d111it$u 6.2 Ca"u truc chuang trinh 6.2.1 Qmln 19 user va password 6.2.2 Cae ehue nang them, x6a, sU'ava eae tra MQt s6 ke't qua d(;ltdUQc Tai lit$u tham khao
107 108 109 CUll
121
;
130 140
4
Chudng 1. Ngon ngil HTML
Trang 5
ChIidng 1.
NGON NGU HTML 1.1
Gi6'i thi~u chung ngon ngii' html.
1.1.1 HyperText Markup Language. HyperText Markup Language (HTML - Ngon ngu danh d3'u sieu van ban) la hang lo~ t cae do~n rna ehu~n voi eac quy uoc dU9c thiet ke d~ t~o cac trang Web va dlrqc hi~n thi bdi nhung trlnh duy~t Web ( Web Browser
nhu : Internet Explorer, Netseape Navigator, ...). HTML la n~n tang clla World Wide Web, rnQt dieh v~l'toan egu clla Internet. Web la dich V~lmang tinh d6 h9a cao trong cac dich Vl;lInternet, cho phep nguoi dung c6 th~ tV t~o eho rieng mlnh nhfrng trang Web. M~e dll ph~m vi va drn quan tr9ng ella HTML c6 thay d6i trong rnQt vai nam qua, nhung rnve dieh co ban v~n khong d6i . HTML duqc thiet ke d~ t~o ra cac ~ ph~m di~n tlr h3'p d~n, voi thinh nang multimedia (da phuong ti~n), dung cho World Wide Web. Tuy nhien HTML khong phai la ngon ngu l~p trlnh. Thay vao d6 HTML t~lOcac trang Web thlrong dlrqe n6i den nhlr la "sang tac", va don gian han nhi~u so voi vi~e t~o ra cac lrng dVng tren may tlnh.
1.1.2 HyperText
va HyperLink.
MQt trong nhung di~rn ehinh clla HTML xac dinh cach thlrc ho~t dQng clla Web, la h6 cac lien ket sieu van ban (hypertext links). Bang cach dvng cac l~nh d~c bi~t trong HTML, tac gia trang Web c6 th~ thay d6i mQt do~n ehu nao d6 thanh c1~ng"clickable" (e6 kha nang click, nhu b3'rn nut). Khi nglroi clung nh3'p vao hypertext, trlnh duy~t Web thuong dap lrng bang each tret v~ rnQt trang Web moi.
sa
Nhung khong phai tat ea eac lien ket d~u la do~n chu - hlnh anh cling c6 th~ trd thanh "cliekable". Trong tnrong hqp nay, g9i la mQt sieu lien ket (hyperlink) thl thieh hqp han, nhung di~u d6 khong quan tr9ng. Nhung thu~t ngfr nay v~ co ban e6 th~ dung thay nhau duqc.
Cllltdllg 1. Ngon ngz? HTML
Trallg 6
Di€u quan tr9ng han la cac sieu lien ktt dong vai tro quan tr9ng trong qua trlnh t~o HTML, va World Wide Web. Hgu htt cac-trang Web d€u co lien ktt dtn cac trang khac. Trong ph~m vi nho han, sieu lien ktt rfft quan tr9ng khi t6 chlic cac site. Nhung d~ ktt noi c1en cac trang Web nay? M6i trang trenWeb d€u co mQt dia chI d~c bio~t va dllY nhfft. C,l c dia chI do g9i la Uniform Resource Locators (URLs)
1.1.3 URL (Uniform Resource Locator) Hgu htt cac dich V~I Internet d€u co mQt phuong phap dinh dia chi, VI the b~n co th~ tIm thffy tai nguyen C~lth~ mQt cach d~ dang. Doi vdi m6i dich v~, dia chI co th~ khac nhau. Vi d~ b~n co th~ goi mQt e-mail tren American Online vdi dia chi ngl(<;1cl~i, d~ co th~ truy c~p dtn FPT site cong cQng cua AOL (American Online) (la noi co th~ t,li cac phgn m€m ling d~ng AOL), se nh~p dia chi sau trong ((ng d~lllg FPT dang d~ng: fpt.aol.com.
sa
World Wide Web cling co phl(Ong phap dinh dia chi cua chinh no nhltng cao cffp han so vdi cac phl(Ong phap dl(<;1C dung trong cac dich v~ tn(dc kia. Web con cho phep truy c~p dtn t5t ca nh[(ng dich v~ Internet khac, nen dia chi ella no phai tinh vi han.
URLs chinh la cac dia chI rna dang noi tdi. Chung co d~ng nhu sau: protocol://inte rnecaddress/pathijilename.
ext
Hay: protocol: internecaddress Sau day la mQt vi d~1v€ URL dung d~ truy c~p dtn mQt tai li~u Web: indows/index. html Xem xet ky dia chI tren mQt cach din th~n. Tuy theo d~ng cGa URL, http:// la protocol (giao thCtc)va www.microsoft.comla dia chi Web Server cua Microsoft. Theo sau la mQt dffu s6 ngu<;1c(/) d~ xac dinh mQt dlliJng dan (path statement) theo sau. Duong d~n tren vi d~ tren cho biet r~ng dang xem mQt tai li~ll index.html, trong thl( ml}c windows. Cae giao thue khac "hall dilllg trong URL
Chl/dllg 1. Ng{Jllllgil' H1ML
Trallg 7
HTTP la mQt giao therc thl(Ong duc;c dung nhi~u nha't trong vi~c truy C?P cac trang HTML. URL.
Dl(di day la rnQt vai giao th((c khac co th~ dung trong
Cac giao th((c chornQt URL Giao thuc
Tai li~u tru
http://
Tai li~u HTML
https://
Tai li~u HTML dUQc bao m?t
files://
Tai li~u HTML tren ma C~lCbQ
ftp://
Site FPT va cac t?P tin
gopher://
NIemi Gopher va cac tai li~u
news:// mailto:
Nhorn Server
telnet:
Thong di~p E-mail Trll
1.2 -.
tin
rna
UseNet
tren
mQt
News
til xa.
Thie't ke'trang Web
1.2.1 T~o mQt trang HTML Hfru he't cac l~nh trong HTML d~ll la cac tag (ky hi~u hay the di danh di{u) ghi chli len cac van ban d~ sau nay chuang trinh bi€t phai lam gi vdi van ban.MQt tai li~u HTML g6rn hai phfrn rieng bi~t phfrn dfru (HEAD) va phfrn than (BODY). Ph5n d~ll clla tai li~u HTML la tVa d~ cua trang,Ph~n than la phfrn trinh bay cac dO~lll van bcln ho~c cac hinh anh.f)uc;c
htu dudi
d?ng tai li~u text, vi v~y d~ gilip cho trlnh duy~t Web bi€t day la mQt tai li~u HTML cfrn phai them tag rna va dong cua HTML, Lu'u van ban vdi duoi html,htm
Vi d~: t <HTML> <HEAD> <!--Tag me)' HEAD, day lelphdn etdu --> <TITLE><!--Tag Title eita HTML, etc'iy la tieu d~ eho HTML-->
Clutdng 1. Ngon ngfl HTML
Trang 8
Tai li~u HTML<!--Ten dta tai li~u--> </TITLE> <!--Tag c1c5ngTitle-- > </HEAD> <!--Tag dong HEAD --> <BODY> Day fa trang HTML </BODY>
m6 -->
1.2.2 MQt s6 HTML tag Comment tag (tag
clut thfch)
.
Cac phfrn nam trong <!-- va --> la cac phfrn chu thfch
Tag <HTML><JHTML> dung d~ bao cho trinh duyt%t Web bie't day la tai lit%uHTML
Tag Tag Tag Tag Tag
<HEAD><JHEAD> dfru HTML <TITLE> <JT1TLE>tieu d~ trang HTML <BODY><JBO])Y> than trang HTML <BASE> dLWg d~ t~o c,lc URL tlTong d6i. <META> nhlT la mot the phan lo~i Web site - thong qua tag nay co
th~ d(p cho cac search engine nhling til khoa va noi dung. Th?m cling co th~ du'<;1cdung d~ n~p tlj dong nhling trang Web moi. --
chi no
Ch(Jn FONT cho dO(l1lwlll ball Tag <JFONT>
FACE
="Name"
SIZE="value"
COLOR="value">
Tag <FONT FAc.E = "Name"> ... <JFONT> dl}t Font cho van ban. Kich th1iac FOllt va mall. Tag <FONT SIZE=vallle> <JFONT>dl} t kfch thu'oc Font. Tag <FONT COLOR=vallle><JFONT> dl}t mau cho Font. EJjllh d(lllg van ball Tag Tag Tag Tag Tag
<EM> lam n6i b~t van ban <STRONG> lam n6i b?t van b,ln voi ki~u in d?m <1> <JI> dlnh d~ng van ban nghieng <B> <JB>dlnh dC;lngvan ban d~m. <U> <JU> dlnh d~ng van ban gC;lchchan.
Chlidllg 1. Ngoll Ilgil HTML
Trang 9
Tag <PRE> <lPRE> dinh d~ng van ban tho (trlnh duy~t hi€n thi ke't qua gi6ng nhu van ban g6c).
Tag <.BR> cho vi~c ngat dong. Tag <HR> cho vi~c t~lOduang ke ngang Tag <.BLOCKQUOTE> <lBLOCKQUOTE>
dinh d~ng do~n van thl;lt
vao dfiu dong.
Tag <P> <lP> day la mQt do~n. Tag <IMG SRC="image_URL">
chen rnQt t~p tin hinh anh len trang
Web Can chinh phfin chIT va hinh anh ALIGN. va van ban tfch hQp l~li voi nhau.
ALIGN
quye't dinh hinh anh
<1MG ALIGN=value SRC=image_URL>
Cac gia tri cua ALIGN Gia tr,i TOP MIDDLE BOTTOM
If nh floatillg HTML 4.0 dlta ra nhi~ll tri. ALIGN hon , vi the- co them mot. kieu rnoi gQi la floating. Khong con anh tren rnQt dong nITa rna hinh anh nay dVa vao rnQt trong cac c~nh, va phfin chIT thi phll dQC theo chi~u cao cua anh.
<P><IMG SRC= "myimage.gij" ALIGN=RIGHT>Anhjloating se lam ddy cac dong van ban theo chdo cao nta anh, rna no dlJa VaG mtlt trong cac qmh va phdn chao'<IP> ?
Dung cac thuQc tinh VSPACE, HSPACE de dinh nghIa vung tren va dl(oi rnQt anh floating.
Vall blul thay the: HTML cung ca'p c&u truc ALT de dinh nghIa rnQt do~n chii' thay the-cho anh khi khong load dl(Qc anh.
<IMG SRC= "myimage.g~f" ALT= "Anh cua toi"> Chieu rQng va cao ella anh cling dang dl(QC de c~p, do la WIDTH and HEIGHT no giup cho Web site hien thi nhanh hon
Chlidng 1. Ngon ngii' HTML
Trang 10
Lien kef va URL HO{lt dl)ng ella cae lien kef Tren Web cac sieu lien ke"tla n€n tang clla ta't ca cac ho~t dQng va thao taco Khi nh~p len mQt lien ke"ttren m~ng Web, thu'ong no chuy€n de"n mQt tai nguyen co lien quan. 86i khi no rna ra mQt trang moi, d6i khi no cling la mQt djch Vl;lclla internet. URL tztdng dOl va tlly~t dOl Ne'u URL tro de"n trang thuQc cung site voi trang hi~nhanh, chi khac nhau ten t~p tin, thl co th€ dung mQt URL tltdng d6i d€ tham khao de'n trang do. Xet hai trang sau. /> iew/resume.h tml Ca hai URL nay la URL tuy~t d6i. Bay gio ne"u t~o mQt sieu lien ke"t tren trang d~u tien (index.html) de"n trang thu hai (resume.html) thl co th€ dung URL tu'dng d6i. C6 th€ dung URL tlly~t d6i d€ tham khao de'n trang ba't ky nao. Khi trlnh duy~t Web g?P mQt URL tltdng d6i (kh6ng xac djnh r5 rang) thl trlnh trlnh duy~t nay se xem nhlt m?c dinh la thu' ffil;lChi~n hanh va URL nhltng voi mQt t~p tin moi. Cae lien kef. •...
Lien ke"t Wi mQt trang khac. 8€lien ke"t Wi mQt tai li~u HTML dung m~ll: . <A HREF = "URL">Put your link text here<fA> ho?c co th€ dung hlnh anh lamJink <A HREF = "URL"> </MG SRC= "image_URL"> <fA> Lien kef tren eiuzg 11l9ttrang. 8€ lien ke"t tren cllllg mQt trang dllllg mQt ky tV #:
<A HREF = "#name> Text your link <fA> Nhu'ng d€ de'n dlt<;jCdrch thl phai them drch de"n vao trong tai li~ll. T~o drch de'n trong tai li~u dllllg tag <:ANAME= "#name> ...<fA> Cae sieu lien ktt Internet
Chzidllg 1. Ngollngil HTML
Trang 11
Lien ke't de'n dja chi' E-mail: Bua lien ktt e-mail vao trang web mQt ca lch d~ dang, chi' cdn c1ia chi' e-mail hQpl~.c1ia chi' nay c1LtQC t~o bdi bon phfin: username, dall @, ten may chlJ, va ten domain. Vi dl;! :
<A HREF = "mail to: "> Send me mail ! </A> T~o lien ke't de'm mQt FTP (File Transfer Protocol) site <A HREF= " />My programe </A> Gopher Server: tL(ong t~t nhLt Web nhLtng kh6ng h6 trQ v~ multimedia <A NAME= "gopher://l71arvel.loc.gov"> The library of Congress </A> Truy d)p tii xa v6'i Telnet <A HREF = "telnet://mycomputer.cOln/">Logon to my computer</A> N{lp trang t~tdl)llg Dung tag <META>
va cac thuQc tinh clla no c1e cho phap n~p trang
HTML khac sau mQt khoa ng thai gian c1inh truoc. sa dl;lllg tag (reload) n~lp l~i ho~c (refresh) c1e lam tLtoi l~i t~li li~u ... Tag <META> co hai thllQC tlnh HTTP-EQUIV dl;lllg trong phfin c1fiuella tai li~u.
va CONTENT
<HTML>
</HEAD> T~o danh sach <LIST TYPE> <LI> First list <LI> Second list <LI> Third list </LIST STYLE> Danh sach co th{i hi va khong th{i tt.i Co tlg( tif.
<OL> <LI> First list <LI> Second list
c1e
c1uQCsa
Chztdng 1. Ngon ngii: HTML
Trang 12
<LI> Third list <IOL> Khong thu tl!. <UL> <LI> First list <LI> Second list <LI> Third list <IUL> T{lo bang <Table> ...</Table>
1.2.3 Djnh d~ng bang MQt bang trong HTML bao g6m cac cQt va cac hang. Cac hang va cQt giao nhau g9i la cell, cac cell co th~ chua van ban ho~c cac thanh phftn HTML khac. Tag chfnh la <TABLE>,
tag nay dung d~ bao cac hang <TR>
va cQt <TD>. Cclc bang dang rieng cho m6i cQt mQt tieu d~ clla bang, tieu d~ nay thuong dung d~ Ia m ten g9i cho cac dong va cQt. Cac bang co de;tng:
c1~t~lOmQt bang co oQ rQng du<;1cxac dinh tntoc va cho phep mQt b,lng c1LrQc canh chinh hang ben trai, ben phai hay CJ giua. Vi d~t : <TABLE WIDTH = 50 ALIGN = CENTER>
COL
va BORDER
d~ bao cho Web Browser bie't co bao nhieu cQt, giup
cho Web Browser ve nhanh. ThuQc tlnh BORDER dlrong vi~n clla bang.
d~ thay d6i dQ day clla
C/utdng 1. Ngon ngii' HTML
Trang 13
BORDER=S ALIGN=CENTER
<TR><TH>Sinh Vien</TH><TH>Di€m <!TH><TH> Trung blnh</TH></TR> <TR><TH> Khai</TH><TD>
Tom tiit : Ch-lidng JULY gio'i thi?u vi ngon ngft HTML dung di thie! kt trang Web. HyperText WI HyperLink cac sieu lien ke! va cac dja chi URL
di xac djnh cac tai nguyen tren m{tng, va cac giao thllc tren m{tng co thi t{to sien lien ket. Cach thie! kt mf)t trang Web va cac tag cd ban cua HTML dilng trong thief ke:
-.
Clutdng 2. GifJiThi~ll IDBC - Ket
Noz Cd Si'JDrt Li~ll
Trang 15
ChIidng 2.
GIOI THIEU .
VE JDBC
,,:'
?"..".
"""",'"
KET NOI 2.1
A
CO SO CD LIEU . .
Cae trinh di~u khi~n JDBC Tren mo hlnh client/server
chung ta cgn mot database
c~ p de'n cd sCidIT lit%udu<;1cqucln lu bCii mot database
server.
client d~ truy Cac database
client chfnh la nhhITng chudng trlnh do nguoi slr d~Ing vie't ho?c mot ht% quan tri cd sCi dIT lit%unao do nguoi Slr d\lng dung trong vit%c truy xua't dIT lit%u. Database server nay chfnh la mot ht% qucln tri cd sCi dIT lit%u. Mot database chi truy c~p de'n database server tUdng ling voi no. Tuy nhien, do ngay cang co nhi~u database
server va cac ht%quan tri cd sCi dIT lit%ukhac
nhau, ch£ng h?n nhu Oracle, SQL Server, MySQL, mSQL, Informix, FoxPro, Access, .v.v ... Til hang Microsoft da dua ra mot chudng trlnh di~u khi~n
chuin
d~ ke't n6i giG'a database
ky gQi la ODBC Driver tren moi trildng Windows. Administrator,
client voi mot database
(Open Database
Connectivity
Driver)
server ba't - lam vit%c
Trlnh di~u khi~n nay gQi la ODBC Data Source
d~ quan ri cac cd sd dG' lit%u co tren Windows,
nguoi
slr
d~Ing ke't n6i de'n rna khong phai quan tam do la ht%quan tri cd sCi dIT lit%u nao. M6i ht%quan tri cd sCi dIT lit%uphai cung ca'p mot ODBC Driver tlrdng ling kern theo ht%quan tri cd sCi dIT lit%u, d~ qua do nguoi slr d~Ing co th~ truy c~p de'n mot cd sCidITlit%udu<;1ct?O ra. Khi nguoi slr dl,Ing dung ngon ngG' Java d~ xay d~rng cac database
client cho rieng mInh, nhung do Java co th~ am vit%c tren cac n~n tang ht% di~uhanh khac nhau : trlnh di~u khi~n ODBC khong th~ dap ling du<;1c theo tinh thgn cua ngon ngIT.Java. Chfnh VI v~y, hang Sun phai dua ra mot trlnh di~u khi~n tUdng tv ODBC gQi la JDBC (Java Database Connectivity) d~ cho phep til database client du<;1cvie't b~ng Java co th~ truy c~p de'n mot cd sCidG' lit%utuy y nao do. £)?C di~m cua JDBC nhITng goi khac. Truong
Driver
la mot package
h<;1pdung applet
vie't b~ng Java
nhu
d~ truy c~p dIT lit%u, trlnh di~u
Chzldng 2. GiUi Thi~ll JDBC - Kef N6z Cd SlJ Dil Li~ll
Trang 16
khi€n JDBC se dUQcn~p VaGmay client khi Chl(dng trlnh th11cthi cung voi applet. Khi do applet co th€ truy c~p cd sd du li~u, ngay ca khi c~n truy c~p cd sd du li~u tren may client bdi applet, chung ta cling co th€ th11chi~n
dl(QCb~ng cach dung JDBC Driver clla may client nay. Hang Sun dua ra 4 lo~i trlnh di~u khi€n JDBC khac nhau:
sa
• Lo~i I: Trlnh di~u khi€n JDBC - ODBC day la trlnh di~u khi€n dl;lng trlnh di~u khi€n ODBC clla Microsoft d€ co th€ ke't noi voi cd Sd du li~u til Java. Voi trlnh di~u khi€n nay chung ta co th€ truy c~p de'n cac cd sd du li~u co tren may voi h~ di~u hanh Windows. Chudng trlnh Java nhanh chong lam vi~c dliQc voi cac cd sd du li~u thong qua trlnh di~u khi€n ODBC clla Microsoft co san. Khi dung trlnh di~u khi€n nay, rang bUQcla tren may client phai co trlnh di~u khi€n ODBC. • Lo~i II: Trlnh di~u khi€n JDBC truy c~p cd sd du li~u thong qua giao thuc d~c thu clla cd sd df( li~u voi mQt ph~n Java (Native - API partly Java driver). Day la cach truy c~p de'n cd sd du li~u b~ng Java nhu cach lien l~c thong qua database client. Do trlnh di~u khi€i1 nay co mQt ph~n khong phai la rna byte. Nen khi dl;lng tren may client cling phai co giao thuc d~c thu clla lo~i cd sd dii' li~u.
sa
• Lo~i III: Trlnh di~u khi€n hoan toan b~ng Java dung giao thlic chu5n (JDBC - Net pure Java driver). Voi trlnh di~u khi€n nay, chung ta co th€ dung no d€ truy c~p de'n ba't ky mQt cd sd du li~u nao nhl( la mQt c~u noi giii'a database client voi mQt database server.Trlnh di~u khi€n nay giong nhu JDBC - ODBC, nhung s11khac nhau do la khong c~n de'n no khi dung applet d€ truy c~p cd sd dii' li~u, va khong nha't thie' phai co Windows tren client va server.
• Lo~i IV: Trlnh di~u khi€n hoan toan b~ng Java dung giao thuc d~c thu (Native Protocol pure Java driver). Day la trlnh di~u khi€n tudng t11lo~i co mQt ph~n Java, nhung d day chudng trlnh di~u khi€n vie't hoan toan b~ng Java (d~ng rna byte), nen khong c~n phai co gl tren client nhu lo~i III hoan toan b~ng Java voi giao thlic d~ thu. Hai lo~i I, II mang tinh ch~p noi d€ nhanh chong dung Java voi cac trlnh di~u khi~n khac khong phai Java. Day khong phai la giai phap t6t cho cac ung dl;lng Java. Nhung nguoi vie't chlfdng trlnh ke't n6i va cac nha san xua't
C/utdng 2. Gi8i Thi~ll IDBC - Ket Not Cd SlJ DZl Li~ll
Trang 17
database server da nhanh du'a ra cac trlnh di~u khi~n thu~n - hO~llltoan b~ng Java (pure Java) - hai lO'.liIII va IV - d~ phat tri~n nhung ling dl;lng tren Java mang d~y du ban cha"t Java la khong phl;l thu9C h~ th6ng, vi€t m9t l~n ch'.lYm9i noi (write once, run anywhere).
2.2.2 Kie'n true JDBC JDBC API chlta dlfng hai quy€t dinh quan tr9ng cua b9 m;)t giao di~n, m9t la JDBC API cho application writer ,th(t hai la mltc tha"p han JDBC di~u khi~n API cho cac driver writer. Cac ling dl;lng va applet co th~ truy c~p database theo du'ong JDBC API sa dl;lng thu~n Java JDBC driver nhu' hlnh du'oi.
Clllldng 2. GifJi Thi?u JDBC -
Kef Not
Cd SlJ Dtt Li?u
Trang 18
•
1
2
Hinh 2.2 Ma hinh Java Applet / Aplication 1. Direct-to-Database
ktt n6i dtn co sd du74 lit%u.
Pure Java Driver. Day la ki€u di~u khi€n chuy€n Wi
gQi JDBC dtn network protocol slt d1;1ngtr~tc titp bdi cac ht%quan ly co sd dIT lit%ucho phep thua nh?n tn!c titp Wi gQi tu may client dtn ht%quan ly co sd dITlit%ud may ph1;1CV1;1va cung dip thitt thl.;l'Cdap an cho vit%ctruy xua't. 2. Pure Java Driver for Database JDBC gQi vao middleware
Hinh du'di rna tel JDBC ktt n6i sit d1;1ngODBC driver va ktt thuc database va thoat khoi database thu' vit%nclient.
Cluidllg 2. GifJi Thi?u JDBC - Ket Nfli Cd SiJ Dz7Li?u
Trang
19
/ 1
2
Hinh 2.3 Mo hlnh Java Application ke't n6i a€n cd sCi du li<%uthong qua c~u n6i JDBC -ODBC 1. JDBC-ODBC Bridge plus ODBC Driver: Hang Sun cung cffp rnQt cffu n6i JDBC truy c~p qua auong ODBC driver. ODBC la rna nhi phan va trong nhi~u truong hd~lllg driver nay. Day la IO(;lidriver chie'rn h~u he't tren aoan th~ network ndi rna client cai a~t thl khong chuyen, ho~c la cho application server ghi xu6ngJava 3 lu6ng ke'n truc.
sa
2. Native-API Partly-Java Driver: Day la Driver thay a6i Wi gQi JDBC vao client API cho Oracle, Sysbase, DB2, ho~c cac h<%qmin tri cd sCi du li<%u khac va aoi hoi rnQt so' cac rna nhi phan a~ load tren rn6i may client
2.3 Ktt n6i cd sd du Ii~u 2.3.1 ODBC (32 bits) Gia sa co cd sCi du li<%udu
Chzldng 2. GifJi Thifll IDBC - Ket NOl Cd Sd DiCLifll
ODBC Microsoft Access 97 Setup Data SOUfce Harne:
__ L
,..'
:_.
It
Trang
~
22
ll3
DataVidu
moh 2.7. HQP th0'.li dti d~t ODBC Microsoft Access
T,.li hQp sO<;lnth,lo Data Source Name hay nh?p sau DataVidu, ta se duqc SLt dl;1ngd~ chi c1anhcho CSDL khi chung ta t'.lOchuang trlnh. Bay giO ta nh~p phim chuQt len tren button Select... hQp th0'.li chQn t?P tin dltqC md, t'.li day ta chQn Example.mdb va ke"tthuc b~ng Button OK.
2.3.2 Ke't n6i cd sddii' li~u Bay gio ta co th~ truy C?P co sd da li~u voi ten DataVidu d~ hi~n thi cac thong tin v~ co sd da li~u nay ra man hlnh bdi chuang trlnh Java nhl( sau: //Applet _JDBC _ ODBCjava import java.awt. *; import java.sql. *; import java.applet. *; import java. awt. event. *; public class Applet_JDBC_ODBC extends Applet {
trong d6 URL eua mQt database e6 d~ng jdbe:subProtoeol:subName, subName la ten eua ngu6n dG'li~u ( Data Source Name ).
voi
8~ bi€t I;' lieh eua dG'li~u sau khi k€t n6i, ta g9i d€n hanh vi getMetaDataO e6 trong lOp Connection. Ham nay tra v~ mQt DatabaseMetaData khi d6 egn bi€t v~ nhG'ng thong tin database, ta su dlfng cae hanh vi tuang ling. Chgng h~n, voi getURLO d~ eho bi€t URL eua database, getDriverNameO d~ eho bi€t ten eua trlnh di~u khi~n JDBC la gI, v.v ....
Chuang trlnh AppleCJDBC_ODBC.java thlfe hi~n voi k€t qua dung Web Browser (hlnh 2.8.). <html> <head> <meta name="generator" content="ModeIWorks IDE"> <title> Applet _JDBC _ ODBC</title> </head> <body>
Test Applet_JDBC_ODB C</h 3> <hr> code =Applet_JDB C_ODBC. class width =400 height= 150> </applet> <hr> </body> </html>
URL for Database: jdbc:odbc:DataVidlJ Database: ACCESS Version: 3.5 Jet User Name: admin Driver: JDBC-ODBC Bridge (ODBCJT32.DLL) DriverVersion: 1.1001 (03.51.1713.00)1