大數據

java輕量級框架MiniDao的詳解

採用HibernateJ2EE項目都有一個痛病,針對複雜業務SQL能力不足,SQL不好優化和也無法分離。 這個時候大家就想到集成mybatis,但是一個項目既用hibernate又用mybatis,顯得很重事務也不好控制。大家常規的做法是採用springjdbc來實現原生SQL編寫,但是同樣也存在問題,SQL無法分離也沒有邏輯標籤能力。

所以Jeecg針對springjdbc+freemarker做了封裝,出了這麼一個輕量級持久層,可以讓Hiberate擁有mybatis一樣SQL靈活能力,同時支持事務統一、SQL標籤能力。

MiniDao 是一款超輕量的JAVA持久層框架,具備Mybatis一樣的SQL能力: 支持SQL分離、支持標籤、支持註解。MiniDao產生的初衷是為了解決Hibernate項目對複雜SQL支持能力,具備Mybatis一樣的靈活性,同時支持事務同步。

MiniDao 具有以下特徵:

O/R mapping不用設置xml,零配置便於維護

不需要了解JDBC的知識

SQL語句和java代碼的分離

只需接口定義,無需接口實現

SQL支持腳本語言(強大腳本語言,freemarker語法)

支持與hibernate輕量級無縫集成

支持自動事務處理和手動事務處理

性能優於Mybatis

比Mybatis更簡單易用

SQL 支持註解方式

SQL 支持獨立文件方式,SQL文件的命名規則: 類名_方法名; SQL文件更容易定位,項目越大優勢越明顯

SQL標籤採用Freemarker的基本語法

版本升級日誌

1. 簡化pom.xml配置,刪掉不需要的依賴

2. 日誌重寫,統一採用接口實現

3. 升級freemarker版本

4. 提供事務demo,註解方式

5. 規範化代碼,日誌打印規範化,提高效率和通用性

源碼解讀:

@MiniDao

public interface EmployeeDao {

public List getAllEmployees(@Param("employee") Employee employee);

Employee getEmployee(@Param("empno") String empno);

Map getMap(@Param("empno")String empno,@Param("name")String name);

@Sql("SELECT count(*) FROM employee")

Integer getCount();

int update(@Param("employee") Employee employee);

void insert(@Param("employee") Employee employee);

}

SQL定義:

SELECT * FROM employee where 1=1

and age = :employee.age

and name = :employee.name

and empno = :employee.empno

雲服務器ECS地址:阿里雲·雲小站

Leave a Reply

Your email address will not be published. Required fields are marked *