日期:2014-05-20  浏览次数:20883 次

MiniDao Framework 1.3.0 发布,J2EE持久化解决方案

MiniDao简介及特征?

MiniDao是J2EE持久化解决方案,摆脱了hibernate笨重和Mybatis的繁琐,同时具备了实体维护和SQL分离的两大优点,拟补了mybatis和hibernate的不足。 ?主要具有以下特征:?

?

  • O/R mapping不用设置xml,零配置便于维护
  • 不需要了解JDBC的知识
  • SQL语句和java代码的分离
  • 可以自动生成SQL语句
  • 接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法对应的sql 它会通过AOP自动生成实现类
  • 支持自动事务处理和手动事务处理
  • 支持与hibernate轻量级无缝集成
  • MiniDao?吸收了Hibernate+mybatis的两大优势,支持实体维护和SQL分离
  • SQL支持脚本语言

详细地址:http://zhangdaiscott.github.io/MiniDao/?
源码下载地址:?http://zhangdaiscott.github.io/MiniDao/??

MiniDao VS mybatis :?http://blog.csdn.net/zhangdaiscott/article/details/11489885?

※ 实体的增删改查不需要写sql,支持SQL自动生成?

?

?————————————————————————————————————————?

version:?minidao-framework-1.3.0
date:? ???2013-11-26?
作者:? ???张代浩
联系邮箱:?scott@jeecg.com
————————————————————————————————————————?

新版本改进包括:

?

  • 项目切换为maven工程
  • 返回的key大小参数设置,SQL格式化参数
  • 添加sql数据参数,支持sql批处理
  • dao接口支持扫描自动加载
  • 防止sql注入

?

接口和SQL文件对应目录?

?

接口定义[EmployeeDao.java]?


Java代码?
  1. public?interface?EmployeeDao?{????
  2. @Arguments("employee")????
  3. public?List<Map>?getAllEmployees(Employee?employee);????
  4. ????
  5. @Arguments("empno")????
  6. Employee?getEmployee(String?empno);????
  7. ????
  8. @Arguments({"empno","name"})????
  9. Map?getMap(String?empno,String?name);????
  10. ????
  11. @Sql("SELECT?count(*)?FROM?employee")????
  12. Integer?getCount();????
  13. ????
  14. @Arguments("employee")????
  15. int?update(Employee?employee);????
  16. ????
  17. @Arguments("employee")????
  18. void?insert(Employee?employee);????
  19. }????
?
SQL文件[EmployeeDao_getAllEmployees.sql]?

?

Java代码?
  1. SELECT?*?FROM?employee?where?1=1?????
  2. <#if?employee.age??exists>????
  3. ????and?age?=?:employee.age????
  4. </#if>????
  5. <#if?employee.name??exists>????
  6. ????and?name?=?:employee.name????
  7. </#if>????
  8. <#if?employee.empno??exists>????
  9. ????and?empno?=?:employee.empno????
  10. </#if>????

?

?

测试代码?

?

?

Java代码?
  1. public?class?Client?{????
  2. public?static?void?main(String?args[])?{????
  3. ????BeanFactory?factory?=?new?ClassPathXmlApplicationContext(????
  4. ????????????"applicationContext.xml");????
  5. ????
  6. ????EmployeeDao?employeeDao?=?(EmployeeDao)?factory.getBean("employeeDao");????
  7. ????Employee?employee?=?new?Employee();????
  8. ????List<Map>?list?=??employeeDao.getAllEmployees(employee);????
  9. ????for(Map?mp:list){????
  10. ????????System.out.println(mp.get("id"));????
  11. ????????System.out.println(mp.get("name"));????
  12. ????????System.out.println(mp.get("empno"));????
  13. ????????System.out.println(mp.get("age"));????
  14. ????????System.out.println(mp.get("birthday"));????
  15. ????????System.out.println(mp.get("salary"));????
  16. ????}????
  17. }????
  18. }????

?

?

技术交流?

  • 作者: 张代浩
  • 技术论坛:www.jeecg.org
  • 邮箱: zhangdaiscott@163.com

?