当前位置: 首页 > 科技观察

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

时间:2023-03-12 05:59:50 科技观察

项目介绍MiniDao是一个轻量级的JAVA持久化层框架,基于SpringJdbc+Freemarker实现,具有与Mybatis相同的SQL分离和逻辑标签能力。Minidao的初衷是为了解决Hibernate项目,在复杂的SQL上有和Mybatis一样的灵活性,支持事务同步。当前版本:v1.7.1|2021-03-29源码下载https://github.com/zhangdaiscott/MiniDaohttps://gitee.com/jeecg/minidao升级日志升级spring版本到5.2.10.RELEASE升级freemarker版本到2.3.30提供代码generator工具,快速生成dao和sql添加非持久化字段标签注解添加snowflake分布式ID生成工具类提供springboot2快速集成starter技术文档官网:http://www.jeecg.com技术文档:https://minidao.mydoc.io快速集成文档:https://minidao.mydoc.io/?t=336070MiniDao特性AnpowerfulenhancedtoolkitofSpringJdbcforsimplifydevelopment具有以下特性:O/Rmapping无需设置xml,零配置方便维护不需要JDBC的知识。SQL语句和Java代码的分离只需要接口定义,不需要接口实现。SQL支持脚本语言(强大的脚本语言,freemarker语法),支持与hibernate的轻量级无缝集成。支持自动交易处理和人工交易。处理性能优于Mybatis,使用起来也比Mybatis简单。SQL支持注解,SQL支持独立文件。SQL文件的命名规则是:类名_方法名;SQL文件更容易定位,便于后期维护。项目越大,这个优势越明显SQL标签使用Freemarker的基本语法代码经验1.接口定义[EmployeeDao.java]@MiniDaopublicinterfaceEmployeeDao{@Arguments({"employee"})@Sql("select*fromemployee")List>getAll(Employeeemployee);@Sql("select*fromemployeewhereid=:id")Employeeget(@Param("id")Stringid);@Sql("select*fromemployeewhereempno=:empnoandname=:name")MapgetMap(@Param("empno")Stringempno,@Param("name")Stringname);@Sql("SELECTcount(*)FROMemployee")IntegergetCount();intupdate(@Param("employee")Employeeemployee);voidinsert(@Param("employee")Employeeemployee);@ResultType(Employee.class)publicMiniDaoPagegetAll(@Param("employee")Employeeemployee,@Param("page")intpage,@Param("rows")introws);2.SQL文件[EmployeeDao_getAllEmployees.sql]SELECT*FROMemployeewhere1=1<#ifemployee.age?exists>andage=:employee.age<#ifemployee.name?exists>andname=:employee.name<#ifemployee.empno?exists>andempno=:employee.empno3.接口和SQL文件对应目录4.测试代码publicclassClient{publicstaticvoidmain(Stringargs[]){BeanFactoryfactory=newClassPathXmlApplicationContext("applicationContext.xml");EmployeeDaoemployeeDao=(EmployeeDao)factory.getBean("employeeDao");Employeeemployee=newEmployee();Stringid=UUID.randomUUID().toString().replaceAll("-","")。toUpperCase();employee.setId(id);employee.setEmpno("A001");employee.setSalary(newBigDecimal(5000));employee.setBirthday(newDate());employee.setName("scott");员工。setAge(25);//调用minidao方法插入employeeDao.insert(employee);}}【小编推荐】微服务面试必问的Dubbo,写的这么详细我怕找不到了工作?2021年值得关注的5大IT行业发展趋势免费安全软件寂寞!尴尬界面UI要换了!Windows1021H2最新预览版抢先看微软为Windows101909推送KB5000850更新,修复资源管理器搜索等问题