


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
文章
蓮山課件ww
Yk公文
2016大二第一學(xué)期實(shí)習(xí)體會(huì)
主要從下到上講一下項(xiàng)目中一些值得注意的細(xì)節(jié)。
0.關(guān)于數(shù)據(jù)庫(kù)字段(實(shí)體類(lèi)屬性)設(shè)計(jì):
一開(kāi)始要盡量想得全,想得長(zhǎng)遠(yuǎn),考慮周到仔細(xì),字段類(lèi)型都要考慮清楚。
個(gè)人覺(jué)得這是非常重要的一步,多人商量討論是最好的。
因?yàn)榈搅撕笃谠僖砑?、修改一點(diǎn)什么是要花更多的時(shí)間的(我大一寫(xiě)一些小項(xiàng)目時(shí)就經(jīng)常這樣,吃了很多虧),而往多了想,就算時(shí)間不夠,要?jiǎng)h除一些功能,直接讀數(shù)據(jù)時(shí)不讀,不寫(xiě)那個(gè)字段即可(在此次實(shí)訓(xùn)中深有體會(huì))。
1.關(guān)于SqL語(yǔ)句,(下面代碼只是片段,有刪減,select*只是為了減少代碼篇幅,不建議在開(kāi)發(fā)中使用)
[java]viewplaincopy
publicListqueryDvdByName(Stringdname){
dname=“‘“+dname+”‘“;
Stringsql=“select*fromDvdwheredname=“+dname;
Listlist=null;
try{
list=operquery(sql,null,);
}catch(Exceptione){
();
}
returnlist;
}
不難發(fā)現(xiàn),我為dname兩端加上了‘單引號(hào),不加是會(huì)報(bào)異常的,這個(gè)細(xì)節(jié)其實(shí)我早已發(fā)現(xiàn)。
這次實(shí)訓(xùn)中發(fā)現(xiàn)有好多同學(xué)問(wèn)我問(wèn)題時(shí)都是在這吃了虧,說(shuō)明好多同學(xué)還不知道,這里特別提一下。
[java]viewplaincopy
publicbooleandelDva(intdid){
Stringsql=“deletefromDvdwheredid=“+did;
returnoperUpdate(sql,null);
}
此處為int類(lèi)型,故不用加,當(dāng)然double也不需要。
再看代碼
[java]viewplaincopy
publicListqueryDvdByName(Stringdname){
Stringsql=“select*fromDvdwheredname=?”;
Listplist=newArrayList();
(dname);
Listlist=null;
try{
list=operquery(sql,plist,);
}catch(Exceptione){
();
}
returnlist;
}
這段程序和第一段幾乎一樣,不同的是,用?占位符代替參數(shù),再傳入填補(bǔ)占位符的plist,也不用加’單引號(hào),而且此方法能有效防止sql注入攻擊(我也是百度“如何防止sql注入”時(shí)才知道的),經(jīng)過(guò)我的驗(yàn)證,確實(shí)不錯(cuò)。
故推薦使用此方法構(gòu)造sql語(yǔ)句。
2.答辯時(shí)發(fā)現(xiàn)好多人說(shuō)自己的程序?qū)崿F(xiàn)了模糊查詢(xún)(即簡(jiǎn)單的在要查詢(xún)的字符串前面、后面各加一個(gè)%),
可是我覺(jué)得他們的模糊查詢(xún)都還差一步,比如:查“從你的全世界路過(guò)”,
上述模糊查詢(xún)輸入“從全世界路過(guò)”,就會(huì)出現(xiàn)查不到的情況,
可是有時(shí)候人們就記得“從全世界路過(guò)”,所以我認(rèn)為他們都沒(méi)有實(shí)現(xiàn)真正的模糊查詢(xún)。
其實(shí)只需再加一步即可,如下:
[java]viewplaincopy
publicListqueryDvdByName(Stringdname){//按片名模糊查詢(xún)
Stringname=“‘%”;
for(inti=0;ilist=null;
try{
list=operquery(sql,null,);
}catch(Exceptione){
();
}
returnlist;
}
/S架構(gòu)中,使用write()及read()傳輸絡(luò)信息時(shí),需傳輸?shù)念?lèi)必須實(shí)現(xiàn)
Serializable接口,比如publicclassDvdimplementsSerializable{.......}
補(bǔ)上序列號(hào)privatestaticfinallongserialVersionUID=7261093218919169833L;
序列號(hào)應(yīng)該是隨機(jī)的一個(gè)碼(這個(gè)我也不是很清楚,個(gè)人覺(jué)得是隨機(jī)生成的)
值得注意的是:服務(wù)器端的實(shí)體類(lèi)名,包名,序列號(hào)都必須與客戶(hù)端的保持一致,
不然絡(luò)傳對(duì)象時(shí),無(wú)法將對(duì)象還原成預(yù)期所需要的對(duì)象(會(huì)報(bào)找不到XXX類(lèi)的錯(cuò))。
連接,分為長(zhǎng)連接與短連接(各有優(yōu)缺點(diǎn),由于我也是自己百度看的,想了解的可以百度),
在此次項(xiàng)目中用的是長(zhǎng)連接。長(zhǎng)連接時(shí)每次客戶(hù)端請(qǐng)求、或者接收服務(wù)器端的數(shù)據(jù)后,
顯然不能關(guān)閉socket(即不能();),要注意的是連由socket得到的輸出輸入流均不能關(guān)閉,
例如InputStreamois=newInputStream(());
不能();
否則報(bào)socketisclosed錯(cuò)誤。
5.關(guān)于分包結(jié)構(gòu),如下圖
這是服務(wù)器端客戶(hù)端
值得注意的是,Dao雖然叫Dao但并不是一個(gè)接口,而是一個(gè)類(lèi),所以放在DaoImpl里面,
答辯時(shí)發(fā)現(xiàn)有不少組由于這個(gè)問(wèn)題被扣分。
6.關(guān)于界面Ui
界面是程序與用戶(hù)交互的實(shí)現(xiàn),在做到盡量美觀之時(shí),更重要的是防止應(yīng)用戶(hù)的錯(cuò)誤輸
入而導(dǎo)致程序崩潰,這樣才是一個(gè)好的界面。
1)就比如應(yīng)該要輸入整數(shù)的地方,用戶(hù)不小心輸入了一個(gè)字符串、中文、小數(shù),如果
沒(méi)有捕獲異常,程序是會(huì)飄紅的。
2)做空值判斷,在ui往biz層傳數(shù)據(jù)時(shí),若用戶(hù)輸入信息有空值,就不應(yīng)當(dāng)繼續(xù)往biz傳
數(shù)據(jù),而應(yīng)當(dāng)提示用戶(hù)輸入有誤。
3)數(shù)值范圍判斷,上面做了非法字符判斷,及空值判斷,還是不夠的。比如輸入一個(gè)
同學(xué)的成績(jī),那么用戶(hù)不小心輸入-55,在1)處不會(huì)報(bào)錯(cuò),2)處也符合,
若沒(méi)有加數(shù)據(jù)范圍判斷就糟糕了。
當(dāng)然要防止這些情況,在數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)之前防止均可,為什么我要在ui防止呢,
當(dāng)然是為了減輕服務(wù)器的負(fù)擔(dān),否則就無(wú)法體現(xiàn)c/S架構(gòu)的優(yōu)勢(shì)所在了,那還不如用B/S架構(gòu)呢!
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 注射相關(guān)感染預(yù)防與控制
- 2-10邏輯函數(shù)的化簡(jiǎn)-公式法1
- 福建省龍巖市一級(jí)校聯(lián)盟2023-2024學(xué)年高一下學(xué)期4月期中聯(lián)考數(shù)學(xué)試題【含答案】
- AIGC應(yīng)用基礎(chǔ)課件
- 醫(yī)院制度管理制度流程圖
- 四川省德陽(yáng)地區(qū)2024-2025學(xué)年下學(xué)期初三模擬卷(一)生物試題含解析
- 西南石油大學(xué)《拉丁美洲文學(xué)史》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇省鹽城市郭猛實(shí)驗(yàn)學(xué)校2024-2025學(xué)年初三適應(yīng)性月考(六)數(shù)學(xué)試題含解析
- 山東省青島市膠州實(shí)驗(yàn)市級(jí)名校2024-2025學(xué)年第二學(xué)期期末初三聯(lián)考數(shù)學(xué)試題含解析
- 錦州市凌河區(qū)2025屆數(shù)學(xué)三下期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- A類(lèi)供應(yīng)商績(jī)效評(píng)價(jià)表
- 攝影攝像知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 2024至2030年中國(guó)丹參行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資潛力預(yù)測(cè)報(bào)告
- AQ/T 9009-2015 生產(chǎn)安全事故應(yīng)急演練評(píng)估規(guī)范(正式版)
- 《無(wú)人機(jī)測(cè)繪技能訓(xùn)練模塊》課件-模塊7:無(wú)人機(jī)航測(cè)影像獲取
- 人工髖關(guān)節(jié)置換隨訪資料庫(kù)模板
- 2024招商引資協(xié)議書(shū)范本
- (完整版)12123交管學(xué)法減分考試題及答案
- 人教版高一下學(xué)期期中考試數(shù)學(xué)試卷及答案解析(共五套)
- (高清版)JTG 3810-2017 公路工程建設(shè)項(xiàng)目造價(jià)文件管理導(dǎo)則
- FZ∕T 74001-2020 紡織品 針織運(yùn)動(dòng)護(hù)具
評(píng)論
0/150
提交評(píng)論