該系列完整的代碼可以在我的git下載到
做好了準備,下面讓我們來開始準備拼SQL。
前面提到了,我們有一個SqlBuilder類,專門用來拼add、delete、query、update的sql語句。毫無疑問,所有的這些拼語句的方法,傳入的肯定是BaseModel類型的值。
我們首先看下add語句的sql
Delete、update、query的語句都類似,就不一一貼出來了。
有了SQL語句,我們就可以開始寫BaseDao方法了。
需要注意的是,這個有一個參數排序的過程。
然后我們在看一下executeUpdate和executeQuery的實現。
查詢和新增不同點在于,查詢需要把ResultSet轉換為對象。因此,我們提供了一個轉換類RsMapper,類里有一個轉換方法rsMapToEntityList。不難看出, 我們是通過反射的方式來進行,后續我覺得應該把這些全部Method全部緩存起來,這樣應該可以很大程度上提高系統性能。
最后,我們得提供一個真正用于執行update和query的類DBUtil,這個類負責去拿到連接串、賬號、密碼,并且執行update和query。
到這里, 我們就基本完成了所有的功能。下一步,我們將開始測試這些方法,并且完成CodeGen,幫我們根據表名,自動生成實體類。