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]?
- public?interface?EmployeeDao?{????
 - @Arguments("employee")????
 - public?List<Map>?getAllEmployees(Employee?employee);????
 - ????
 - @Arguments("empno")????
 - Employee?getEmployee(String?empno);????
 - ????
 - @Arguments({"empno","name"})????
 - Map?getMap(String?empno,String?name);????
 - ????
 - @Sql("SELECT?count(*)?FROM?employee")????
 - Integer?getCount();????
 - ????
 - @Arguments("employee")????
 - int?update(Employee?employee);????
 - ????
 - @Arguments("employee")????
 - void?insert(Employee?employee);????
 - }????
 
SQL文件[EmployeeDao_getAllEmployees.sql]?
?
- SELECT?*?FROM?employee?where?1=1?????
 - <#if?employee.age??exists>????
 - ????and?age?=?:employee.age????
 - </#if>????
 - <#if?employee.name??exists>????
 - ????and?name?=?:employee.name????
 - </#if>????
 - <#if?employee.empno??exists>????
 - ????and?empno?=?:employee.empno????
 - </#if>????
 
?
?
测试代码?
?
?
- public?class?Client?{????
 - public?static?void?main(String?args[])?{????
 - ????BeanFactory?factory?=?new?ClassPathXmlApplicationContext(????
 - ????????????"applicationContext.xml");????
 - ????
 - ????EmployeeDao?employeeDao?=?(EmployeeDao)?factory.getBean("employeeDao");????
 - ????Employee?employee?=?new?Employee();????
 - ????List<Map>?list?=??employeeDao.getAllEmployees(employee);????
 - ????for(Map?mp:list){????
 - ????????System.out.println(mp.get("id"));????
 - ????????System.out.println(mp.get("name"));????
 - ????????System.out.println(mp.get("empno"));????
 - ????????System.out.println(mp.get("age"));????
 - ????????System.out.println(mp.get("birthday"));????
 - ????????System.out.println(mp.get("salary"));????
 - ????}????
 - }????
 - }????
 
?
?
技术交流?
- 作者: 张代浩
 - 技术论坛:www.jeecg.org
 - 邮箱: zhangdaiscott@163.com
 
?
