1.步驟
注冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)
建立數(shù)據(jù)庫(kù)連接
創(chuàng)建一個(gè)Statement(聲明)
執(zhí)行SQL語(yǔ)句
處理結(jié)果集
關(guān)閉數(shù)據(jù)庫(kù)連接
2.Thread和Runnable實(shí)現(xiàn)線程類的區(qū)別
繼承Thread,線程代碼存放在Thread子類的run方法中,
實(shí)現(xiàn)Runnable剩檀,線程代碼存放在接口子類的run方法中
實(shí)現(xiàn)Runnable接口,適合多個(gè)相同代碼的線程去處理同一個(gè)資源的情況逛揩,可以避免由于單繼承的局限,增強(qiáng)了程序的健壯性麸俘,代碼能夠被多個(gè)線程共享辩稽,代碼與數(shù)據(jù)是獨(dú)立的。
3.什么是死鎖
兩個(gè)進(jìn)程都在等待對(duì)方執(zhí)行完畢才能繼續(xù)往下執(zhí)行的時(shí)候就會(huì)發(fā)生死鎖从媚,結(jié)果就是兩個(gè)進(jìn)程都陷入了無(wú)限的等待逞泄。
4.如若確保多個(gè)線程可以訪問(wèn)多個(gè)資源同時(shí)又不導(dǎo)致死鎖
使用多線程的時(shí)候,一種非常簡(jiǎn)單的避免死鎖的方式就是,指定獲取鎖的順序喷众,并強(qiáng)制線程按照指定的順序獲取鎖各谚,因此,如果所有的線程都以同樣的順序加鎖和釋放鎖侮腹,就不會(huì)出現(xiàn)死鎖。
5.readonly和disable區(qū)別
readonly只針對(duì)input(text/password)和textarea有效稻励,disable對(duì)于所有的表單元素都有效父阻,當(dāng)表單使用disable后,我們將表單以post或get方式提交時(shí)望抽,這個(gè)元素的值不會(huì)被傳出去加矛,readonly會(huì)將該值傳過(guò)去。
6.Mybatis的#{}和${}
動(dòng)態(tài)SQL是Mybatis強(qiáng)大的特性之一煤篙。這也是他由于其他框架的原因斟览,Mybatis在對(duì)SQL語(yǔ)句預(yù)編譯之前,會(huì)對(duì)SQL進(jìn)行動(dòng)態(tài)解析辑奈。
#{}相當(dāng)于?苛茂,${}將傳入的參數(shù)當(dāng)做字符串解析
#{}很大程度防止SQL注入,${}不可以防止SQL注入
${}一般用于傳入數(shù)據(jù)庫(kù)對(duì)象鸠窗,例如傳入表名
7.什么是SpringMVC框架
SpringMVC是基于過(guò)濾器對(duì)servlet進(jìn)行封裝的一個(gè)框架妓羊,我們使用的時(shí)候就在web.xml文件中配置DispatcherServlet(前端控制器)類,SpringMVC工作時(shí)主要通過(guò)DispatcherServlet管理接收請(qǐng)求并處理稍计。
8.@RequestMapping注解的作用
用于類上躁绸,表示類中的所有響應(yīng)請(qǐng)求的方式都是以該地址作為父路徑
用在方法上,需要在這個(gè)注解里寫(xiě)上要攔截的路徑