J2EE持久化解決方案,MiniDao 1.3.0 發布

jopen 11年前發布 | 15K 次閱讀 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文件對應目錄 

d87a43da-b4b0-3bf8-b480-cb0becf5ba05.jpg

 

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