项目介绍

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

当前版本:v1.7.1 | 2021-03-29

源码下载

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

升级日志

  • 升级spring版本到5.2.10.RELEASE
  • 升级freemarker版本到2.3.30
  • 提供代码生成器工具,快速生成dao和sql
  • 增加非持久化字段标记注解
  • 增加雪花分布式ID生成工具类
  • 提供springboot2快速集成starter

技术文档

  • 技术官网: 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 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);
}
}

MiniDao1.7.1 版本发布,轻量级Java持久化框架相关推荐

  1. 轻量级Java持久化框架,Hibernate完美助手,Minidao 1.6.2版本发布

    Minidao 1.6.2 版本发布,轻量级Java持久化框架(Hibernate完美助手) Minidao产生初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hiber ...

  2. MiniDao1.8.3 版本发布,轻量级Java持久化框架

    项目介绍 MiniDao 是一款轻量级JAVA持久层框架,基于 SpringJdbc + freemarker 实现,具备Mybatis一样的SQL分离和逻辑标签能力.Minidao产生的初衷是为了解 ...

  3. MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器

    MiniDao 简介及特征 MiniDao 是一款超轻量的JAVA持久层框架,具备Mybatis一样的SQL能力: 支持SQL分离.支持标签.支持注解.MiniDao产生的初衷是为了解决Hiberna ...

  4. MiniDao_1.6-SNAPSHOT 版本发布,轻量级Java持久化框架

    MiniDao-PE 简介 MiniDao-PE 是一种持久化解决方案,类似mybatis的持久层解决方案,可以轻松集成Hibernate工程,事务统一管理,解决了Hibernate工程想支持myba ...

  5. Minidao_1.6.2版本发布,超轻量Java持久化框架

    Minidao_1.6.2 版本发布了,超轻量Java持久化框架 升级日志 1,扩展新标签@param 2,支持拦截器 Interceptor 3,提高分页效率,SqlServer兼容问题处理 4,升 ...

  6. JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号、企业号)

    JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号.企业号) 1.JEEWX平台介绍  Jeewx是一款开源.敏捷.组件化的微信管家平台,支持微信公众号.微信企业号管理,采用JAVA语 ...

  7. P3-weixin-2.0.1 版本发布,JAVA微信插件框架

    P3-weixin-2.0.1版本发布(JAVA微信插件框架) P3-Weixin是轻量级Java插件开发框架,采用主流JAVA技术,集成强大代码生成器,增删改查一键生成,封装统一后台管理系统,不仅适 ...

  8. JEECG 3.6.3版本发布 企业级JAVA快速开发平台

    JEECG 3.6.3版本发布   企业级JAVA快速开发平台 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台.引领新的开发模式(OnlineCoding模式 ...

  9. 轻量级 Java Web 框架技术选型

    2019独角兽企业重金招聘Python工程师标准>>> 本文是<轻量级 Java Web 框架架构设计>的系列博文. 前面已对该 Java Web 框架做了一些简要描述, ...

最新文章

  1. IBM发布全球首台商用量子计算机
  2. android中getLocationInWindow 和 getLocationOnScreen的区别
  3. python封装函数、实现将任意的对象序列化到磁盘上_序列化(serialization)
  4. AutoCAD VBA对齐对象
  5. 吴恩达神经网络1-2-2_图神经网络进行药物发现-第2部分
  6. 【白皮书分享】2020新式茶饮白皮书:数字化进阶-奈雪.pdf(附下载链接)
  7. 选择图像根据坐标得到图像。头像裁剪器
  8. 如何在Oracle中导入dmp文件
  9. 单片机c语言自学视频教程下载,郭天祥 十天学会单片机和C语言编程视频教程
  10. 机器人编程软件semia_全国青少年机器人编程
  11. 热炉法则:规章制度面前人人平等 | 每天成就更大成功
  12. web前端开发工程师面试题大全
  13. VMware虚拟机转换为kvm虚拟机
  14. Horner规则求多项式
  15. java基于springboot+Vue+nodejs的高校运动会报名管理系统 element
  16. 【全网最详细yolov6】yoloV6调试记录(含训练自己的数据集及常见报错及解决方法)--持续更新ing
  17. 按字母A-Z全国城市及县城json
  18. 讨论主题:人工智能对人类社会发展的影响(弊大于利)
  19. html怎么用新页面打开页面打开网页,javascript如何打开新窗口?
  20. 金融科技:贷款平台搭建方案分享

热门文章

  1. openssl windows安装
  2. linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件
  3. (王道408考研操作系统)第二章进程管理-第四节2:死锁处理策略之避免死锁(银行家算法)
  4. (王道408考研数据结构)第八章排序-第五节:归并排序
  5. Linux系统编程1:基础篇之Linux中使用率最高的一些命令
  6. linux操作系统中文件系统管理--实训
  7. Python pip install 包后,pycharm仍然提示No module named(提示 No module named ‘pip‘)
  8. golang strconv包(类型转换、保留小数位)
  9. golang错误:The process cannot access the file because it is being used by another process
  10. C/C++函数指针与回调函数总结(函数指针数组)