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的缓存,达到及时更新缓存的目的,减少脏数据产生。控制粒度可以细化到行上。