MiniDao (轻量级JAVA持久层,Hibernate完美助手)
MiniDao (輕量級JAVA持久層,Hibernate完美助手)
當前最新版本: 1.6.4 (發布日期:20180604)
MiniDao產生的初衷?
采用Hibernate的J2EE項目都有一個痛病,針對復雜業務SQL,hibernate能力不足,SQL不好優化和也無法分離。 這個時候大家就想到集成mybatis,但是一個項目既用hibernate又用mybatis,顯得很重事務也不好控制。大家常規的做法是采用springjdbc來實現原生SQL編寫,但是也同樣存在問題,SQL無法分離也沒有邏輯標簽能力。 所以為了解決這個痛病,Jeecg針對springjdbc+freemarker做了封裝,出了這么一個輕量級持久層,可以讓Hiberate擁有mybatis一樣SQL靈活能力,同時支持事務統一、SQL標簽能力。
MiniDao 簡介及特征
MiniDao 是一款輕量級JAVA持久層框架,基于 SpringJdbc + freemarker 實現,具備Mybatis一樣的SQL分離和邏輯標簽能力。Minidao產生的初衷是為了解決Hibernate項目,在復雜SQL具備Mybatis一樣的靈活能力,同時支持事務同步。
具有以下特征:
- O/R mapping不用設置xml,零配置便于維護
- 不需要了解JDBC的知識
- SQL語句和java代碼的分離
- 只需接口定義,無需接口實現
- SQL支持腳本語言(強大腳本語言,freemarker語法)
- 支持與hibernate輕量級無縫集成
- 支持自動事務處理和手動事務處理
- 性能優于Mybatis
- 比Mybatis更簡單易用
- SQL 支持注解方式
- SQL 支持獨立文件方式,SQL文件的命名規則: 類名_方法名; SQL文件更容易定位,方便后期維護,項目越大此優勢越明顯
- SQL標簽采用Freemarker的基本語法
如何快速集成minidao?
方式一:springmvc與minidao集成
https://minidao.mydoc.io/?t=293634
方式二:springboot2與minidao集成
https://minidao.mydoc.io/?t=336070
技術交流
- 文 檔:?https://minidao.mydoc.io
- 論 壇:?www.jeecg.org
- QQ交流群: 362385436
代碼體驗
1. 接口定義[EmployeeDao.java]
@MiniDao public interface EmployeeDao {@Arguments({ "employee"})@Sql("select * from employee")List<Map<String,Object>> getAll(Employee employee);@Sql("select * from employee where id = :id")Employee get(@Param("id") String id);@Sql("select * from employee where empno = :empno and name = :name")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);@ResultType(Employee.class)public MiniDaoPage<Employee> getAll(@Param("employee") Employee employee,@Param("page") int page,@Param("rows") int rows);}
2. 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>3. 接口和SQL文件對應目錄
?
?
?
4. 測試代碼
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();String id = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();employee.setId(id);employee.setEmpno("A001");employee.setSalary(new BigDecimal(5000));employee.setBirthday(new Date());employee.setName("scott");employee.setAge(25);//調用minidao方法插入employeeDao.insert(employee); } }總結
以上是生活随笔為你收集整理的MiniDao (轻量级JAVA持久层,Hibernate完美助手)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fineplus(QQ完美助手) v0.
- 下一篇: 热电阻温度传感器工作原理解析