MiniDao1.8.3 版本发布,轻量级Java持久化框架
生活随笔
收集整理的這篇文章主要介紹了
MiniDao1.8.3 版本发布,轻量级Java持久化框架
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
項目介紹
MiniDao 是一款輕量級JAVA持久層框架,基于 SpringJdbc + freemarker 實現(xiàn),具備Mybatis一樣的SQL分離和邏輯標簽能力。Minidao產(chǎn)生的初衷是為了解決Hibernate項目,在復雜SQL具備Mybatis一樣的靈活能力,同時支持事務同步。
當前版本:v1.8.3 | 2021-08-09
源碼下載
- https://github.com/zhangdaiscott/MiniDao
- https://gitee.com/jeecg/minidao
升級日志
- 數(shù)據(jù)庫分頁方言重構支持含常規(guī)、國產(chǎn)、大數(shù)據(jù)等28種數(shù)據(jù)庫
| MySQL | √ |
| Oracle、Oracle9i | √ |
| SqlServer、SqlServer2012 | √ |
| PostgreSQL | √ |
| DB2、Informix | √ |
| MariaDB | √ |
| SQLite、Hsqldb、Derby、H2 | √ |
| 達夢、人大金倉、神通 | √ |
| 華為高斯、虛谷、瀚高數(shù)據(jù)庫 | √ |
| 阿里云PolarDB、PPAS、HerdDB | √ |
| Hive、HBase、CouchBase | √ |
- 數(shù)據(jù)庫實現(xiàn)自動適配不再需要手工配置DB類型
- 解決上個版本重構后,不支持SqlServer分頁問題
- debug模式下,解決報錯: Minidao報錯“Template java/lang/Object_toString.sql not found”
- ID支持主鍵策略自動生成 @TableId(type = IdType.UUID)
- @TableId 支持uuid(默認)\AUTO(自增)\ID_WORKER(雪花ID)\ID_SEQ(序列seq,必須配置seqName)四種主鍵策略
技術文檔
- 技術官網(wǎng): http://www.jeecg.com
- 技術文檔: https://minidao.mydoc.io
- 如何快速集成minidao
MiniDao特征
An powerful enhanced toolkit of SpringJdbc for simplify development
具有以下特征:
- O/R mapping不用設置xml,零配置便于維護
- 不需要了解JDBC的知識
- SQL語句和java代碼的分離
- 只需接口定義,無需接口實現(xiàn)
- SQL支持腳本語言(強大腳本語言,freemarker語法)
- 支持與hibernate輕量級無縫集成
- 支持自動事務處理和手動事務處理
- 性能優(yōu)于Mybatis
- 比Mybatis更簡單易用
- SQL 支持注解方式
- SQL 支持獨立文件方式,SQL文件的命名規(guī)則: 類名_方法名; SQL文件更容易定位,方便后期維護,項目越大此優(yōu)勢越明顯
- SQL標簽采用Freemarker的基本語法
代碼體驗
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);//調(diào)用minidao方法插入employeeDao.insert(employee); } }總結
以上是生活随笔為你收集整理的MiniDao1.8.3 版本发布,轻量级Java持久化框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nyoj-999 师傅又被妖怪抓走了
- 下一篇: 蚂蚁集团沈凋墨:Kubernetes-微