J2EE持久化解決方案,MiniDao 1.3.0 發布
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
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!