MiniDao 比Mybatis還靈活實用的J2EE 持久層輕量級解決方案
阿新 • • 發佈:2018-12-21
MiniDao
MiniDao簡介及特徵
MiniDao是Jeecg自己的持久化解決方案,集成了Hibernate實體維護和Mybaits SQL分離的兩大優勢。 具有以下特徵:
- 1.O/R mapping不用設定xml,零配置便於維護
- 2.不需要了解JDBC的知識
- 3.SQL語句和java程式碼的分離
- 4.可以自動生成SQL語句
- 5.介面和實現分離,不用寫持久層程式碼,使用者只需寫介面,以及某些介面方法對應的sql 它會通過AOP自動生成實現類
- 6.支援自動事務處理和手動事務處理
- 7.支援與hibernate輕量級無縫整合
- 8.MiniDao整合了Hibernate+mybatis的兩大優勢,支援實體維護和SQL分離
- 9.SQL支援指令碼語言
※向下相容Hibernate實體維護方式,實體的增刪改查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")); }}}