MiniDao 1.9.0 版本发布,轻量级 Java 持久化框架


项目介绍

MiniDao 是一款轻量级 JAVA 持久层框架,基于 SpringJdbc + freemarker 实现,具备 Mybatis 一样的 SQL 分离和逻辑标签能力。Minidao 产生的初衷是为了解决 Hibernate 项目,在复杂 SQL 具备 Mybatis 一样的灵活能力,同时支持事务同步。

当前版本:v1.9.0 | 2022-09-02

源码下载

  •  https://github.com/zhangdaiscott/MiniDao
  •  https://gitee.com/jeecg/minidao

升级日志

  • 升级依赖版本号与 jeecgboot 版本号一致,重点升级 jsqlparser 重构了不兼容方法
  • 升级 springframework 依赖到 5.3.18 ,与 jeecgboot 同步
  • 升级 spring-boot-starter 依赖到 2.6.6 ,与 jeecgboot 同步
  • 升级 javassist 依赖到 3.25.0-GA
  • 升级 jsqlparser 依赖到 4.3
  • 升级 ognl 版本号解决报错问题
  • 不支持 SqlServer 分页问题
  • 支持用户自定义数据源
  • SqlServer2012 (derby 用到)、PostgreSql、神通、Hsql、mysql 分页优化,有分页关键词就用 select 包裹起来
  • 反射打破方法没必要写,去掉 fields [j].setAccessible (true)
  • SQL Server 表名关键字查询失败

技术文档

  • 技术官网: 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 代码的分离
  • 只需接口定义,无需接口实现
  • SQL 支持脚本语言(强大脚本语言,freemarker 语法)
  • 支持与 hibernate 轻量级无缝集成
  • 支持自动事务处理和手动事务处理
  • 性能优于 Mybatis
  • 比 Mybatis 更简单易用
  • SQL 支持注解方式
  • SQL 支持独立文件方式,SQL 文件的命名规则:类名_方法名;SQL 文件更容易定位,方便后期维护,项目越大此优势越明显
  • 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 andname = :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);
}
}

 


相關推薦

2022-11-11

数据写入都可以保证原子性(Atomicity)、支持自定义数据持久化机制、数据模型一览无余和配置轻松自由等特性。 Elide 6.1.9 已正式发布,更新内容如下: Features 添加对在 JSON-API 中填充 Meta 对象的支持 (#2824) 添加否定前缀

2023-07-09

YMP 是一个非常简单、易用的轻量级 Java 应用开发框架,涵盖 AOP、IoC、WebMVC、ORM、Validation、Plugin、Serv、Cache 等特性,主要技术特点: 采用组件化、模块方式打包,可按需装配,灵活可扩展; 采用微内核实现 AutoScan、AOP、

2023-10-14

性能、支持多语言开发而备受开发者青睐。 Eclipse Vert.x 版本 4.4.6 现已发布,此版本修复了自 Vert.x 4.4.5 发布以来已经报告的一些错误。此外还披露了 CVE-2023-44487,这是一个会影响 HTTP/2 服务器的 bug。Vert.x 升级到 Netty

2022-09-19

p;3.5.11 milestone 页面。发布公告还写道,自 3.5.10 以来,此版本没有任何已知的向后不兼容变化。 下载地址 https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.11

2022-05-27

程序的性能 #2426 发布公告还写道,自 3.5.9 以来,此版本没有任何已知的向后不兼容变化,完整变更内容查看 3.5.10 milestone 页面。 下载地址 https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.10 https://mvnrepository.com/artifact/org.m

2023-03-09

MQTT 3.1.1/5.0 Broker 服务。 smart-flow 一款具备可观测性的轻量级业务编排框架。 组织地址:?https://smartboot.tech/ 代码仓库:?https://gitee.com/smartboot 2、 版本更新 这个版本在功能上的改动比较小,过去一个月花了比较多时间

2023-09-26

指标计算处理等的临时数据到记录,不会对临时数据进行持久化处理 使用案例: //添加用于指标计算处理等的临时数据到记录,不会对临时数据进行持久化处理, context.addTempData("name","ddd"); //获取用于指标计算处理等的临时数

2023-06-06

1/5.0 Broker&Client 服务。 smart-flow 一款具备可观测性的轻量级业务编排框架。 组织地址:?https://smartboot.tech/ 代码仓库:?https://gitee.com/smartboot 2、 版本更新 在v0.21版本中,我们通过改进数据结构的设计,将topic订阅匹配

2023-08-23

Binlog4j 轻量级 Mysql Binlog 客户端, 提供宕机续读, 高可用集群等特性 项目特性 集群模式, 通过集群部署的方式,保证服务高可用。 宕机续读, 避免宕机期间造成数据丢失。 数据转换, 基于泛型封装 binlog Event 的序列

2022-04-08

noearorg/waterfaas:2.5.9 镜像:Water 即时接口服务,提供轻量级FaaS接口服务 控制台演示站 地址: http://water.noear.org (账号:demo ;密码:demo ) 关键持久化说明: 日志持久化,支持:MySql、PostgreSQL、MongoDb、El

2023-01-09

noearorg/waterfaas:2.9.2 镜像:Water 即时接口服务,提供轻量级FaaS接口服务     noearorg/xwater:2.9.2 构建:Water 助理工具 控制台演示站 地址: https://water.noear.org (账号:demo ;密码:demo ) 关键持久化说

2022-09-08

noearorg/waterfaas:2.8.2 镜像:Water 即时接口服务,提供轻量级FaaS接口服务     noearorg/xwater:2.8.2 构建:Water 助理工具 控制台演示站 地址: http://water.noear.org (账号:demo ;密码:demo ) 关键持久化说

2023-05-08

noearorg/waterfaas:2.10.4 镜像:Water 即时接口服务,提供轻量级FaaS接口服务     noearorg/xwater:2.10.4 构建:Water 助理工具 控制台功能 控制台演示站 地址: https://water.noear.org (账号:demo ;密码

2023-10-17

1/5.0 Broker&Client 服务。 smart-flow 一款具备可观测性的轻量级业务编排框架。 组织地址:?https://smartboot.tech/ 代码仓库:?https://gitee.com/smartboot 2、 版本更新 【社区版】 日志框架替换为 logback。 升级 maven-javadoc-plu