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.****.net/zhangdaiscott/article/details/11489885
※ 实体的增删改查不需要写sql,支持SQL自动生成
————————————————————————————————————————
version:minidao-framework-1.3.0
date: 2013-11-26
作者: 张代浩
联系邮箱:[email protected]
————————————————————————————————————————
新版本改进包括:
- 项目切换为maven工程
- 返回的key大小参数设置,SQL格式化参数
- 添加sql数据参数,支持sql批处理
- dao接口支持扫描自动加载
- 防止sql注入
接口和SQL文件对应目录
接口定义[EmployeeDao.java]
- publicinterfaceEmployeeDao{
- @Arguments("employee")
- publicList<Map>getAllEmployees(Employeeemployee);
- @Arguments("empno")
- EmployeegetEmployee(Stringempno);
- @Arguments({"empno","name"})
- MapgetMap(Stringempno,Stringname);
- @Sql("SELECTcount(*)FROMemployee")
- IntegergetCount();
- @Arguments("employee")
- intupdate(Employeeemployee);
- @Arguments("employee")
- voidinsert(Employeeemployee);
- }
SQL文件[EmployeeDao_getAllEmployees.sql]
- SELECT*FROMemployeewhere1=1
- <#ifemployee.age?exists>
- andage=:employee.age
- </#if>
- <#ifemployee.name?exists>
- andname=:employee.name
- </#if>
- <#ifemployee.empno?exists>
- andempno=:employee.empno
- </#if>
测试代码
- publicclassClient{
- publicstaticvoidmain(Stringargs[]){
- BeanFactoryfactory=newClassPathXmlApplicationContext(
- "applicationContext.xml");
- EmployeeDaoemployeeDao=(EmployeeDao)factory.getBean("employeeDao");
- Employeeemployee=newEmployee();
- List<Map>list=employeeDao.getAllEmployees(employee);
- for(Mapmp: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
- 邮箱: [email protected]