MiniDao1.7.1 版本发布,轻量级Java持久化框架
项目介绍
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持久化框架相关推荐
- 轻量级Java持久化框架,Hibernate完美助手,Minidao 1.6.2版本发布
Minidao 1.6.2 版本发布,轻量级Java持久化框架(Hibernate完美助手) Minidao产生初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hiber ...
- MiniDao1.8.3 版本发布,轻量级Java持久化框架
项目介绍 MiniDao 是一款轻量级JAVA持久层框架,基于 SpringJdbc + freemarker 实现,具备Mybatis一样的SQL分离和逻辑标签能力.Minidao产生的初衷是为了解 ...
- MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器
MiniDao 简介及特征 MiniDao 是一款超轻量的JAVA持久层框架,具备Mybatis一样的SQL能力: 支持SQL分离.支持标签.支持注解.MiniDao产生的初衷是为了解决Hiberna ...
- MiniDao_1.6-SNAPSHOT 版本发布,轻量级Java持久化框架
MiniDao-PE 简介 MiniDao-PE 是一种持久化解决方案,类似mybatis的持久层解决方案,可以轻松集成Hibernate工程,事务统一管理,解决了Hibernate工程想支持myba ...
- Minidao_1.6.2版本发布,超轻量Java持久化框架
Minidao_1.6.2 版本发布了,超轻量Java持久化框架 升级日志 1,扩展新标签@param 2,支持拦截器 Interceptor 3,提高分页效率,SqlServer兼容问题处理 4,升 ...
- JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号、企业号)
JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号.企业号) 1.JEEWX平台介绍 Jeewx是一款开源.敏捷.组件化的微信管家平台,支持微信公众号.微信企业号管理,采用JAVA语 ...
- P3-weixin-2.0.1 版本发布,JAVA微信插件框架
P3-weixin-2.0.1版本发布(JAVA微信插件框架) P3-Weixin是轻量级Java插件开发框架,采用主流JAVA技术,集成强大代码生成器,增删改查一键生成,封装统一后台管理系统,不仅适 ...
- JEECG 3.6.3版本发布 企业级JAVA快速开发平台
JEECG 3.6.3版本发布 企业级JAVA快速开发平台 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台.引领新的开发模式(OnlineCoding模式 ...
- 轻量级 Java Web 框架技术选型
2019独角兽企业重金招聘Python工程师标准>>> 本文是<轻量级 Java Web 框架架构设计>的系列博文. 前面已对该 Java Web 框架做了一些简要描述, ...
最新文章
- IBM发布全球首台商用量子计算机
- android中getLocationInWindow 和 getLocationOnScreen的区别
- python封装函数、实现将任意的对象序列化到磁盘上_序列化(serialization)
- AutoCAD VBA对齐对象
- 吴恩达神经网络1-2-2_图神经网络进行药物发现-第2部分
- 【白皮书分享】2020新式茶饮白皮书:数字化进阶-奈雪.pdf(附下载链接)
- 选择图像根据坐标得到图像。头像裁剪器
- 如何在Oracle中导入dmp文件
- 单片机c语言自学视频教程下载,郭天祥 十天学会单片机和C语言编程视频教程
- 机器人编程软件semia_全国青少年机器人编程
- 热炉法则:规章制度面前人人平等 | 每天成就更大成功
- web前端开发工程师面试题大全
- VMware虚拟机转换为kvm虚拟机
- Horner规则求多项式
- java基于springboot+Vue+nodejs的高校运动会报名管理系统 element
- 【全网最详细yolov6】yoloV6调试记录(含训练自己的数据集及常见报错及解决方法)--持续更新ing
- 按字母A-Z全国城市及县城json
- 讨论主题:人工智能对人类社会发展的影响(弊大于利)
- html怎么用新页面打开页面打开网页,javascript如何打开新窗口?
- 金融科技:贷款平台搭建方案分享
热门文章
- openssl windows安装
- linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件
- (王道408考研操作系统)第二章进程管理-第四节2:死锁处理策略之避免死锁(银行家算法)
- (王道408考研数据结构)第八章排序-第五节:归并排序
- Linux系统编程1:基础篇之Linux中使用率最高的一些命令
- linux操作系统中文件系统管理--实训
- Python pip install 包后,pycharm仍然提示No module named(提示 No module named ‘pip‘)
- golang strconv包(类型转换、保留小数位)
- golang错误:The process cannot access the file because it is being used by another process
- C/C++函数指针与回调函数总结(函数指针数组)