Java 輕量級的orm工具包,jdao 1.0.7 發布
jdao是一個輕量級的orm工具包,通過簡單配置或者連接數據庫提供表名它便可以自動生成與數據庫表一一對應的dao類,生成的dao類提供了與 SQL無關的增刪改查的功能。在復雜的查詢SQL中,我建議編程人員自己編寫高效的SQL,再通過jdao查詢后返回封裝好的QureyDao類,很方便的獲取數據。在jdao底層,目前有spring的jdbcTemplate實現與我自己封裝的jdaoHandlerImpl實現。jdao有支持事務,支持批量插入數據等特性。同時jdao底層數據庫操作提供接口,編程人員可以自己實現。 如果你覺得hibernate,ibatis等orm框架過于笨重,不煩試下jdao,它可以在團隊開發中規范團隊持久層代碼,較少開發量,特別在單表操作上基本是對象操作,對于復雜SQL查詢也有較好的封裝。
示例:
查詢SQL: select value,rowname from hstest where id between 2 and 10; jdao對象操作如下: Hstest t = new Hstest(); t.where(Hstest.ID.BETWEEN(2, 10)); t.query(Hstest.VALUE, Hstest.ROWNAME); 插入SQL: insert into hstest (id,rowname,value) values(1,"donnie","wuxiaodong") jdao對象操作如下: Hstest t = new Hstest(); t.setId(1); t.setRowname("donnie"); t.setValue("wuxiaodong"); t.save(); 更新SQL: update hstest set rowname="wuxiaodong",value="wuxiaodong" where id=10 jdao 對象操作如下: Hstest t = new Hstest(); t.setRowname("wuxiaodong"); t.setValue("wuxiaodong"); t.where(Hstest.ID.EQ(10)); t.update(); 刪除SQL: delete from hstest where id=2 jdao對象操作如下: Hstest t = new Hstest(); t.where(Hstest.ID.EQ(2)); t.delete();
這個版本主要針對緩存功能做一些改進,讓操作粒度可以更加細化。
增加useCache(String domain,String node)方法,也就是使用緩存時增加node參數控制。
如下操作:
Hstest h = new Hstest().useCache("domain", "node");
第一個參數是域名,可以見1.0.6版本域名介紹。
第二個參數是節點,可以是id值等。
對象h在jdao中的緩存對象由域名與節點來控制,遇到底層操作SQL一致時,還需要看域名與節點是否也一致,才決定是否返回緩存對象。
刪除緩存對象也相應增加方法:
delNode(String domain, Class<?> clazz, String node)
delNode(String domain, String node)
操作可以參考測試類:ActionTest1_0_7.java
使用場景參考:node可以定義為id之類值,如用戶信息表緩存,node定義為userid,如發現某用戶信息變更時,可以刪除相應node的緩存,達到及時更新緩存的目的,減少臟數據產生。控制粒度可以細化到行上。