MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器_R芮R的博客-程序员宅基地

技术标签: java  

MiniDao 简介及特征

    MiniDao 是一款超轻量的JAVA持久层框架,具备Mybatis一样的SQL能力: 支持SQL分离、支持标签、支持注解。MiniDao产生的初衷是为了解决Hibernate项目对复杂SQL支持能力,具备Mybatis一样的灵活性,同时支持事务同步。

具有以下特征:

  • O/R mapping不用设置xml,零配置便于维护
  • 不需要了解JDBC的知识
  • SQL语句和java代码的分离
  • 只需接口定义,无需接口实现
  • SQL支持脚本语言(强大脚本语言,freemarker语法)
  • 支持与hibernate轻量级无缝集成
  • 支持自动事务处理和手动事务处理
  • 性能优于Mybatis
  • 比Mybatis更简单易用
  • SQL 支持注解方式
  • SQL 支持独立文件方式,SQL文件的命名规则: 类名_方法名; SQL文件更容易定位,项目越大优势越明显
  • SQL标签采用Freemarker的基本语法

MiniDao产生的初衷?

    采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL能力不足,SQL不好优化和也无法分离。 这个时候大家就想到集成mybatis,但是一个项目既用hibernate又用mybatis,显得很重事务也不好控制。大家常规的做法是采用springjdbc来实现原生SQL编写,但是同样也存在问题,SQL无法分离也没有逻辑标签能力。 所以为了解决这个痛病,Jeecg针对springjdbc+freemarker做了封装,出了这么一个轻量级持久层,可以让Hiberate拥有mybatis一样SQL灵活能力,同时支持事务统一、SQL标签能力。

版本升级日志

  • 1. 简化pom.xml配置,删掉不需要的依赖
  • 2. 日志重写,统一采用接口实现
  • 3. 升级freemarker版本
  • 4. 提供事务demo,注解方式
  • 5. 规范化代码,日志打印规范化,提高效率和通用性

源码下载

源码解读:

@MiniDao  
public interface EmployeeDao {  
  
 public List<Map> getAllEmployees(@Param("employee") Employee employee);  
  
 Employee getEmployee(@Param("empno") String empno);  
  
 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);  
}

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>

  

转载于:https://www.cnblogs.com/jeecg158/p/9132345.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30301449/article/details/96817457

智能推荐

UCOS-II 简介(经典教程序)_wenlifu71022的博客-程序员宅基地

 所 谓嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用软件等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。在大型嵌入式应 用系统中,为了使嵌入式开发更方便、快捷,需要具备一种稳定、安全的软件模块集合,用以管理存储器分配、

【PBOC卡片交易日志分析】流程_Amy_92的博客-程序员宅基地

卡片的交易流程在PBOC3.0规范 第4部分中有完整交易的流程图:这里只进行脱机数据认证部分的举例分析:SDA, DDA, fDDA. 非接q交易默认GPO响应不返回AFL,支持新的online ODA的卡片需要设置正确的DF61(第7位ODA支持位)和9F68(最后一个byte第6位)SDA:DDA:fDDA:

SequoiaDB 系列之一 :SequoiaDB的安装、部署_weixin_30477797的博客-程序员宅基地

在分析或者参与一个开源项目之前,了解项目构建的目的是有必要的。既然SequoiaDB是NoSQL数据库产品,则必然存在于传统关系型数据库相同的功能点:数据的增、删、改和查询(CRUD)。先了解怎么用,再在会用的基础上,进一步分析其实现。在上一篇中已经列出的安装环境,以及SequoiaDB的下载地址。具备以上条件之后,然后咱就行动吧。本篇文章的内容是安装和部署一个...

Hacking swing: 一个JDBC表控件模型_acoolboy1984的博客-程序员宅基地

摘要:本文是这样的一个例子,不光是利用可视化的JTable,而主要是利用隐藏在这之后的模型来开发。通过J2SE所提供的JDBC支持,你可以将一个数据库的表映射到一个Swing的表控件模型,然后用JTable将其呈现出来 编者按:SwingHacks不仅仅是视觉上的游戏,就如同本文所阐述的一样。本书的目的是使开发者能够利用Java开发出更优秀的桌面应用程序,而本文正是这样的一个例子,不光

ubuntu 搭建django 环境_weixin_30644369的博客-程序员宅基地

ubuntu 默认安装了 python2.7 。安装djangoapt install python-django;安装mysqlapt install mysql-server* *代表版本号vim /etc/mysql/mysql.conf.d/mysqld.cnf 添加 character-set-server = utf8 设置服务端编码utf8 ...

Centos安装zip_王紫又的博客-程序员宅基地_centos zip

简单粗暴sudo yum install -y unzip zipsudo yum list |grep gccsudo yum install gcc-c++sudo yum install unzip

随便推点

New features in XenServer 7.2_weixin_33694172的博客-程序员宅基地

New features in XenServer 7.2 reference from    https://www.citrix.com/products/xenserver/whats-new.html  Extending XenApp&amp;amp;XenDesktop IntegrationXenServer 7.2 extends alignment withXenApp and XenD...

直流电机工作原理释义_英雄的小白的博客-程序员宅基地

一般电机转速(几千到几万rmp)比较快,需要在电机后面引入减速器例如:电机输出10000r/min 但是我们需要500r/min的转速,那么就需要1:20传动比的减速器。减速器的作用(传动比)1.降低电机速度2.提高输出扭矩减速器的分类齿轮减速器:体积较小,传递扭矩大,但是有一定的回程间隙。蜗杆减速器:具有反向自锁功能,体积较大,传动效率不高,精度不高行星齿轮减速器(精密传动):结构比较紧凑,回程间隙小、精度较高,使用寿命很长,额定输出扭矩可以做的很大,但价格略贵。...

JPA:Repeated column in mapping for entity_qq_38941327的博客-程序员宅基地

坑:这个来自新建实体类(New-..JPA entities from tables)大概会造成三种错误:一种是①标题这种,一种大意是②至少要有一个非只读的列(大意关键词non-read only,There should be one non-read-only mapping defined for the primary key field),还有一个大意是③update错误之类的。...

Android studio 导入Eclipse project 注意事项_xianwenzhang的博客-程序员宅基地

转换目录结构打开Import新用户:老用户: File-->Import Project直接找到原有的Eclipse工程单一工程直接导入即可。有库工程的需要注意,导入一定要指向主工程,而不是整个项目的目录。指向项目目录是无法进行转换的。指定目标路径这个地方需要详细说一下这里上面两个选项暂且不说,勾选上。最后一项提一下: 将Modu

RecyclerView的通用适配器_hjl343661629的博客-程序员宅基地

RecyclerView的通用适配器 本来这一个主题应该早就写了,只是项目多,属于自己的时间不多,所以现在才开动!!前一段时间写了一篇文章,是关于ListView,GriView万能适配器,没有看过的同学,可以先看看那篇文章,然后在来学习RecyclerView的话,会容易很多。链接http://www.cnblogs.com/huangjial...

【洛谷】P1372 又是毕业季I 题解_跑起来要带风!的博客-程序员宅基地

【洛谷】P1372 又是毕业季I 题解原题地址:https://www.luogu.org/problem/P1372题目背景“叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻。毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌。1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻!题目描述为了把毕业晚会办得更好,老师想要挑出默契程...