You are on page 1of 3

Lm vic vi Statement, PreparedStatement &CallableStatement

I.
Khi lam vic vi JDBC, ban khng th khng bit dn cac giao din (interface) h tro cho
qua trnh khai thac va luu tru thng tin trn co s du liu cua chuong trnh chinh
la Statement,PreparedStatement va CallableStatement. Tuy theo nhu cau, ban c
th tao ra cac di tuong cua mt trong cac giao din trn d thuc hin nhu cau khai thac
thng tin cua chuong trnh tai thoi dim can thit. C th hiu v cac giao din trn nhu m
ta dui day

Statement: thuong dung d tao ra cac di tuong d phuc vu cho muc dich chinh la thuc
thi cac cau lnh dang SQL d tac dng ln co s du liu.
1 di tuong cua giao din Statement se giup ban thuc hin duoc hau nhu tat ca cac tac
dng cua chuong trnh ln co s du liu tai thoi dim ma chuong trnh thi hanh.
Tuy nhin, kha nang thay di gia tri duoc xem nhu cac tham s d tac dng ln co s du
liu cua cac di tuong thuc dang nay khng cao, vi du: ban mun lay danh sach cac sinh
vin thuc khoa toan, cau lnh SQL c th la Select ho, ten, ngaysinh,
diem from sinhVien wherekhoa='Toan'". vay trong truong hop ban mun lay danh sach
sinh vin thuc khoa van th cau lnh se la Select ho, ten,
ngaysinh, diem from sinhVien where khoa='van'". van d day, ta thay rang vi 2 nhu
cau trn, ni dung cua cau SQL gan nhu khng thay di, chi khac la diu kin truy van ung
vi nhu cau tai mi thoi dim cu th khng ging nhau nhung ta phai su dung dn 2 chui
lnh SQL. iu nay duong nhu rat thiu linh hoat, vay cau hi dat ra trong tnh hung c
nhiu hon 2 nhu cau truy van, vi du nhu nhu cau truy van hang ha theo loai hang, nha
cung cap, . trong 1 chuong trnh quan l hang ha cua siu thi th phai lam th nao ?. Ban
se phai c rat nhiu cau truy van khng may khac nhau, diu nay lam tn km rat nhiu v
chi phi, tai nguyn va lam giam hiu suat thuc thi cua chuong trnh khi can phai giai quyt
nhung nhu cau cu th nao d trn thuc t. la chua ni dn van d bao tr chuong trnh,
hoac gia nhu c nhu cau v diu chinh di vi chuong trnh sau 1 thoi gian hoat dng trn
thuc t, vic tm va diu chinh lai cac cau SQL la rat vat va.
khac phuc nhuoc dim d cua giao din Statement, Java cung cap 1 giao din khac
giup cho vic tao ra cac truy van ln co s du liu c ve " hon chinh
la PreparedStatement. Giao din PreparedStatement duoc trin khai (implement)
tu giao din Statement ban dau nhung cho php lap trnh vin c th quy dinh truyn
vao nhung gia tri can thay di cho cau lnh SQL d c th su dung 1 cach linh hoat
hon. vi du d truy van va lay ra danh sach cac sinh vin trong truong tuy thuc theo
khoa tai mi thoi dim, ban c th tao cau SQL th nay Select ho, ten, ngaysinh,
diem from sinhVien where khoa = ? ". O day, cau lnh SQL ma ban su dung lam tham
s truyn vao khi tao di tuong cho giao din PreparedStatement c th quy dinh
tham s (dau ?) d sau nay khi goi su dung; ban c th truyn gia tri vao sau, tuy theo
thoi dim ma gia tri d c th cu th la g, diu nay da giup cho ban giam di dang k s
luong cau truy van trong chuong trnh cua mnh.
vi vic truyn tham s d su dung cho di tuong dang PreparedStatement, ban c
th dung cac phuong thuc setInt, setString, setFloat, setBoolean, setLong, . d
truyn vao gia tri duoc coi la tham s cua cau lnh SQL da tao ra truc d tai vi tri cua
dau ?. vi du tuong ung vi nhu cau truy van danh sach theo khoa da d cap trn, khi
can lay ra danh sach sinh vin khoa toan, ban chi can goi phung thuc setString cua
di tuong PreparedStatementnhu sau .setString(1,"Toan"), tuong tu nhu vau vi
nhu cau cho danh sach khoa van, khoa l, ban cung c th su dung lnh
.setString(1,"van"); .setString(1,"Ly"); ( tham s thu nhat trong phuong
thuc nay chinh la thu tu cua tham s mun truyn thu tu cua dau ? trong cau truy
van, trong cau SQL vi du cua chung ta c 1 tham s va nhu th tham s can truyn
nam vi tri thu nhat, vic su dung setString, setInt, . tuy thuc vao du liu ma ban
truyn vao thuc kiu g, trong tnh hung trn, du liu cua ti thuc kiu chui nn su
dung phuong thuc setString)
vic su dung cac cau lnh SQL d truyn giua client (may chay chuong trnh cua chung
ta vit) va database server (Nay c cai dat DBNS va chua Database cua chuong trnh)
se lam cho luu luong truyn thng trn mang rat ln (Ta thu hnh dung phai thuong
xuyn thuc hin cac truy van phuc tap vi nhiu table, s luong thng tin tu cac field
can lay trn 10 fields vi diu kin truy van phuc hop and, or . hay cac truy van c
diu kin la cac truy van con khac, s luong k tu trong chui SQL se rat nhiu). iu
nay lam tang traffic trn mang dan dn tc d thuc thi cua chuong trnh giam, tn km
tai nguyn tai database server v cu lun phai cap phat cho vic tao va giai phng b
nh khi thuc thi cac lnh SQL, cho du la lnh d duoc thuc thi nhiu lan.


Stored procedure la giai phap tt cho tnh hung nay, vic su dung stored
procedure d h tro cho qua trnh xu l thng tin trong database t ra kha hiu qua
bi 1 s uu dim sau:
- C th goi thuc thi nhiu cng vic tac dng ln Database chi thng qua 1 cai
tn.
- Giam traffic do chi truyn 1 chui k tu ngan chinh la tn cua stored procedure
ma khng phai truyn di v nhung cau lnh SQL dai dong, di khi ln ti ca tram
k tu.
- Stored procedure duoc tao va dat tai database server va vic khai thac chi
thng qua tn cua n cho nn c th ngan ngua duoc nhung ke to mo mun
bit chuong trnh cua chung ta dang tac dng nhu th nao ln Database.
- Do stored procedure duoc bin dich truc va tn tai mai trong qua
trnh DBMS hoat dng nn kha nang thuc thi va hi dap thng tin cho client rat
nhanh, tang hiu suat thuc thi cua chuong trnh (Phan bin dich di vi tap lnh
cua stored procedure duoc tai su dung nhiu lan)
- Tan dung vic thuc thi va giai quyn cac yu cau cua chuong trnh dng thoi
ca 2 noi : client server. v th tang hiu suat thuc thi chuong trnh.
Stored procedure c nhiu uu dim nhu th, vay d goi su dung cac stored
proceduretrong Database ta se dung di tuong nao ?. Chac cac ban cung da doan ra,
dung th !. Java cung cap cho chung ta giao din CallableStatement d c th goi
cac stored proceduretrong Database ( : CallableStatement khng
chua stored procedure, n chi chua loi goi ham tr dn stored procedure da tn tai
trong DBNS d yu cau thuc thi va tra v kt qua cho chung ta ma thi)

You might also like