JDBC综合例题
JDBC綜合例題
這個(gè)綜合例題主要就是使用JDBC的方式來(lái)對(duì)數(shù)據(jù)庫(kù)表格進(jìn)行增、刪、查、改操作,其中還要逐個(gè)對(duì)這些方法進(jìn)行測(cè)試,所以還要編寫(xiě)測(cè)試用例。編寫(xiě)這個(gè)例題主要意義是練習(xí)和進(jìn)一步熟悉JDBC對(duì)數(shù)據(jù)庫(kù)表格進(jìn)行增、刪、查、改操作的方式,鞏固JDBC這個(gè)知識(shí)點(diǎn)。
這個(gè)例題里要用到的技術(shù)有:Maven、DBUnit、C3P0連接池、Log4j、MySQL數(shù)據(jù)庫(kù)。
1.先準(zhǔn)備一個(gè)干凈的數(shù)據(jù)庫(kù)和兩個(gè)表格,并且給這兩個(gè)表格構(gòu)建關(guān)聯(lián)關(guān)系:
2.創(chuàng)建Maven工程,并配置好所有的依賴(lài)包:
配置好依賴(lài)包:
3.在源碼文件夾和測(cè)試源碼文件夾里創(chuàng)建好相應(yīng)的包(package),以便分類(lèi),免得所有類(lèi)都擠在一起顯得亂糟糟的:
源碼文件夾下的包:
c3p0manager 這個(gè)包是用來(lái)放連接對(duì)象管理類(lèi)的
org.zero01.iuds 這個(gè)包是用來(lái)放封裝類(lèi)和功能類(lèi)的
exception 這個(gè)包是用來(lái)放自定義異常類(lèi)的
?
測(cè)試源碼文件夾下的包:
org.zero01.test 這個(gè)包是用來(lái)放測(cè)試用例類(lèi)的
?
?
? 4.在c3p0manager 包下創(chuàng)建一個(gè)類(lèi),這個(gè)類(lèi)用于通過(guò)C3P0連接池獲得數(shù)據(jù)庫(kù)連接對(duì)象,并且這個(gè)類(lèi)是單例模式:
代碼示例:
5.編寫(xiě)兩個(gè)表格的數(shù)據(jù)封裝類(lèi):
Cls代碼示例:
Student代碼示例:
6.編寫(xiě)對(duì)Cls表格操作的功能類(lèi):
7.編寫(xiě)對(duì)Student表格操作的功能類(lèi):
8.在測(cè)試源碼文件夾下的org.zero01.test包里編寫(xiě)測(cè)試類(lèi),對(duì)兩個(gè)功能類(lèi)的方法逐個(gè)進(jìn)行測(cè)試:
測(cè)試結(jié)果:
測(cè)試覆蓋率:
日志信息的打印:
提示:我這是已經(jīng)完成的代碼,但是各位在實(shí)際編寫(xiě)代碼的時(shí)候,最好是寫(xiě)一個(gè)方法就測(cè)試一下,不要全部功能代碼寫(xiě)完再寫(xiě)測(cè)試用例測(cè)試,因?yàn)槟菢右坏┏鰡?wèn)題了,很多地方的代碼都要進(jìn)行修改,如果寫(xiě)一個(gè)方法就測(cè)一個(gè)方法的話(huà),就只需要針對(duì)一個(gè)方法進(jìn)行修改,而其他方法不需要變動(dòng),這樣效率高一些并且修改代碼也輕松些,不用到處修修改改弄得眼花繚亂。
?
? 我在編寫(xiě)C3P0Manager類(lèi)的時(shí)候,犯了一個(gè)邏輯上的小錯(cuò)誤,在這里記錄一下這個(gè)錯(cuò)誤,出現(xiàn)這個(gè)錯(cuò)誤是因?yàn)槲野褬?gòu)建對(duì)象的屬性聲明在了C3P0數(shù)據(jù)源類(lèi)變量的前面,在構(gòu)造器外調(diào)用getConnection方法的時(shí)候就會(huì)拋出空指針異常:
圖解:
正確的聲明方式:
轉(zhuǎn)載于:https://blog.51cto.com/zero01/1977020
總結(jié)
- 上一篇: Gartner调查显示政府部门数字化转型
- 下一篇: mybatis常用方法总结