J2EE 持久層輕量級解決方案: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]
@MiniDao public interface EmployeeDao { @Arguments("employee") public ListgetAllEmployees(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 employee.name ?exists> and name = :employee.name <#if employee.empno ?exists> and empno = :employee.empno
MiniDao接口配置
<!-- 注冊MiniDao接口 --> <bean class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory"> <property name="packagesToScan"> <list> <value>examples.dao.*</value> </list> </property> </bean>
測試代碼
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(); Listlist = 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")); } } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!