J2EE 持久層輕量級解決方案:MiniDao

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

J2EE 持久層輕量級解決方案:MiniDao

接口定義[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"));
    }
}
}

項目主頁:http://www.baiduhome.net/lib/view/home/1379212890115

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