從零開(kāi)始寫(xiě)ORM框架系列3

該系列完整的代碼可以在我的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)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,652評(píng)論 18 399
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,548評(píng)論 0 85
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,227評(píng)論 0 4
  • 2017年6月8日 高考結(jié)束了,晚上全班一起去吃個(gè)散伙飯,我們就散了。 所有人都在為今晚...
    一蓑煙雨任平生L閱讀 509評(píng)論 1 0
  • 炎暑綠泥沒(méi),歇菜人總碌。 烈焰慘紅唇,白光裂底妝。
    以行閱讀 283評(píng)論 3 1

友情鏈接更多精彩內(nèi)容