該系列完整的代碼可以在我的git下載到
做好了準(zhǔn)備,下面讓我們來(lái)開(kāi)始準(zhǔn)備拼SQL。
前面提到了,我們有一個(gè)SqlBuilder類(lèi),專(zhuān)門(mén)用來(lái)拼add、delete、query、update的sql語(yǔ)句。毫無(wú)疑問(wèn),所有的這些拼語(yǔ)句的方法,傳入的肯定是BaseModel類(lèi)型的值。
我們首先看下add語(yǔ)句的sql

Delete、update、query的語(yǔ)句都類(lèi)似,就不一一貼出來(lái)了。
有了SQL語(yǔ)句,我們就可以開(kāi)始寫(xiě)B(tài)aseDao方法了。

需要注意的是,這個(gè)有一個(gè)參數(shù)排序的過(guò)程。
然后我們?cè)诳匆幌耬xecuteUpdate和executeQuery的實(shí)現(xiàn)。


查詢和新增不同點(diǎn)在于,查詢需要把ResultSet轉(zhuǎn)換為對(duì)象。因此,我們提供了一個(gè)轉(zhuǎn)換類(lèi)RsMapper,類(lèi)里有一個(gè)轉(zhuǎn)換方法rsMapToEntityList。不難看出, 我們是通過(guò)反射的方式來(lái)進(jìn)行,后續(xù)我覺(jué)得應(yīng)該把這些全部Method全部緩存起來(lái),這樣應(yīng)該可以很大程度上提高系統(tǒng)性能。

最后,我們得提供一個(gè)真正用于執(zhí)行update和query的類(lèi)DBUtil,這個(gè)類(lèi)負(fù)責(zé)去拿到連接串、賬號(hào)、密碼,并且執(zhí)行update和query。


到這里, 我們就基本完成了所有的功能。下一步,我們將開(kāi)始測(cè)試這些方法,并且完成CodeGen,幫我們根據(jù)表名,自動(dòng)生成實(shí)體類(lèi)。