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

技术标签: 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

智能推荐

使用 matplotlib 绘制简单图表(折线图、柱形图、条形图、堆积面积图、直方图、饼图、散点图、箱形图、雷达图、误差棒图)_用matplotlib绘制图-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。X轴代表日期,y轴代表温度,由图可以清晰的看出北京市未来15天的最高气温和最低气温都呈现逐步下降后反弹的趋势。————2013-2019财年某电商平台的GMV。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块。中的pyplot模块、numpy模块。中的pyplot模块、numpy模块。中的pyplot模块、numpy模块。_用matplotlib绘制图

WebView内存泄漏解决方法_web-view memory access out-程序员宅基地

文章浏览阅读292次。##1.新开进程在WebView所在的activity新开辟一个进程,在onDestroy中杀死WebView所在的进程@Overridepublic void onDestroy() { android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy();}清单文..._web-view memory access out

Springboot整合PageHelper分页插件,java分布式开发面试题-程序员宅基地

文章浏览阅读227次,点赞3次,收藏7次。可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源6072290)][外链图片转存中…(img-S0YU0wqO-1711156072290)]上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源本文已被。

linux报错Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&inf_linux 安装vsftpd couldnot retrieve mirrorlist-程序员宅基地

文章浏览阅读1.6k次。解决方法:服务器未联网,联网即可解决_linux 安装vsftpd couldnot retrieve mirrorlist

matlab rx算法,精通MATLAB智能算法(2015代码)-程序员宅基地

文章浏览阅读363次。文件名大小更新时间Intelligent algorithm\10\s10_1\1.jpg535472014-04-26Intelligent algorithm\10\s10_1\s10_1.m87752014-04-26Intelligent algorithm\10\s10_2\1.jpg535472014-04-26Intelligent algorithm\10\s10_2\bys.m1..._rx-algorithm及其变体代码实现

Vue使用AntV/G2例子_vue2中使用antv中的水波图基础用法-程序员宅基地

文章浏览阅读780次。Vue项目中使用AntV/G2图表_vue2中使用antv中的水波图基础用法

随便推点

大数问题——26进制_z-26进制数是一个每位都是大写字母的数字。 a、b、c、…、x、y、z 分别依次代表一-程序员宅基地

文章浏览阅读4.3k次。杭电2100LovekeyProblem Description XYZ-26进制数是一个每位都是大写字母的数字。 A、B、C、…、X、Y、Z 分别依次代表一个0 ~ 25 的数字,一个 n 位的26进制数转化成是10进制的规则如下 A0A1A2A3…An-1 的每一位代表的数字为a0a1a2a3…an-1 ,则该XYZ-26进制数的10进制值就为 m = a0 * 26^(n-1) + a_z-26进制数是一个每位都是大写字母的数字。 a、b、c、…、x、y、z 分别依次代表一

程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)_直接插入排序34,65,12,56,78,10-程序员宅基地

文章浏览阅读129次。程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)原创 2012年05月12日 11:18:05标签:java /数据结构 /算法50847前几天,看到一篇前辈的博文“程序员必知的8大排序”,不禁的手痒起来,重新翻开严蔚敏老师的《数据结构》复习了一遍,然后一一的用java去实现,其中有不足之处,还望各位道友指正_直接插入排序34,65,12,56,78,10

Android:Json数据转换成Map_android json to hashmap-程序员宅基地

文章浏览阅读1.6k次。本文利用Gson来做实现,先导入:implementation 'com.google.code.gson:gson:2.8.6'主要利用的是JsonObject里的entrySet()方法,相关Demo代码如下:import com.google.gson.Gson;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import java.util.HashMap;import java.ut_android json to hashmap

R语言 quantmod下载股票代码无法访问Yahoo的唯一解决方法_r语言下载不了雅虎数据-程序员宅基地

文章浏览阅读394次。总结而言,当无法访问Yahoo时,使用quantmod包下载股票代码的一个可行解决方法是选择替代数据源,例如Alpha Vantage,并使用其提供的API密钥来获取数据。值得注意的是,使用Alpha Vantage作为替代数据源可能会有一些限制,例如每分钟请求的次数有限制,并且可能无法提供与Yahoo相同的数据范围和质量。getSymbols函数用于从指定的数据源获取股票数据,参数src用于指定数据源,api.key用于传递API密钥。在获得API密钥后,我们可以使用以下代码来获取股票代码。_r语言下载不了雅虎数据

Matlab函数句柄调用图像K均值分类_function varargout = classification_outputfcn(hobj-程序员宅基地

文章浏览阅读1.2k次。function varargout = guideTemp2(varargin)% GUIDETEMP2 MATLAB code for guideTemp2.fig% GUIDETEMP2, by itself, creates a new GUIDETEMP2 or raises the existing% singleton*.%% H = GUID_function varargout = classification_outputfcn(hobject, eventdata, handles)

1688API获得店铺详情_1688获得店铺详情-程序员宅基地

文章浏览阅读271次。seller_info - 获得店铺详情测试网址:http://console.open.onebound.cn/console/?i=eidiResult Object:---------------------------------------{ "user": { "nick": "yylsmould", "city": "浙江 宁波", "good_num": "", "level": "11", "user_num_id": null, "company_i_1688获得店铺详情