阅读更多
MiniDao简介及特征

MiniDao是Jeecg自己的持久化解决方案,集成了Hibernate实体维护和Mybaits SQL分离的两大优势。 具有以下特征:

  • O/R mapping不用设置xml,零配置便于维护
  • 不需要了解JDBC的知识
  • SQL语句和java代码的分离
  • 可以自动生成SQL语句
  • 接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法对应的sql 它会通过AOP自动生成实现类
  • 支持自动事务处理和手动事务处理
  • 支持与hibernate轻量级无缝集成
  • MiniDao整合了Hibernate+mybatis的两大优势,支持实体维护和SQL分离
  • SQL支持脚本语言
详细地址:http://zhangdaiscott.github.io/MiniDao/
源码下载地址:http://code.google.com/p/jeecg/downloads/list

※向下兼容Hibernate实体维护方式,实体的增删改查SQL自动生成

接口和SQL文件对应目录



接口定义[EmployeeDao.java]

public interface EmployeeDao {
@Arguments("employee")
public List<Map> getAllEmployees(Employee employee);

@Arguments("empno")
Employee getEmployee(String empno);

@Arguments({"empno","name"})
Map getMap(String empno,String name);

@Sql("SELECT count(*) FROM employee")
Integer getCount();

@Arguments("employee")
int update(Employee employee);

@Arguments("employee")
void insert(Employee employee);
}


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>


测试代码

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();
    List<Map> list =  employeeDao.getAllEmployees(employee);
    for(Map mp:list){
        System.out.println(mp.get("id"));
        System.out.println(mp.get("name"));
        System.out.println(mp.get("empno"));
        System.out.println(mp.get("age"));
        System.out.println(mp.get("birthday"));
        System.out.println(mp.get("salary"));
    }
}
}


技术交流

  • 作者: 张代浩
  • 技术论坛:www.jeecg.org
  • 邮箱: zhangdaiscott@163.com
  • 大小: 27.1 KB
6
7
评论 共 24 条 请登录后发表评论
24 楼 hwy1782 2013-09-08 16:13
楼主代码丢到git上去把。。。嘿嘿
23 楼 zhangdaiscott1 2013-09-06 20:26
享受生活 写道
根据贴图,没发现跟mybatis有什么区别:
配置文件换个形式而已,一个xml,一个sql;
jdbc知识跟框架无关;
用配置文件,sql、代码铁定都是分离的;
mybatis一样只需要写dao接口,不需要写实现,可运行时生成;
事务处理都是支持的;

疑问:
自动生成sql的功能在哪
一条语句一个sql文件,明显导致文件数量会过多,像mybatis将同类的语句封装到一个xml明显要好。

结论:创新还不够。

以上言论只是探讨,人身攻击的勿扰。


感谢交流,支持像Hibernate方式实体维护,配置JPA系统,可以实现增删改查,不需要写SQL
22 楼 MrLee23 2013-09-06 18:24
精神可嘉,代码一般。
不懂瞎说的,别生气。
21 楼 youarestupid 2013-09-06 17:09
享受生活 写道
根据贴图,没发现跟mybatis有什么区别:
配置文件换个形式而已,一个xml,一个sql;
jdbc知识跟框架无关;
用配置文件,sql、代码铁定都是分离的;
mybatis一样只需要写dao接口,不需要写实现,可运行时生成;
事务处理都是支持的;

疑问:
自动生成sql的功能在哪
一条语句一个sql文件,明显导致文件数量会过多,像mybatis将同类的语句封装到一个xml明显要好。

结论:创新还不够。

以上言论只是探讨,人身攻击的勿扰。

顶你,这不算人身攻击吧?
20 楼 享受生活 2013-09-06 17:03
根据贴图,没发现跟mybatis有什么区别:
配置文件换个形式而已,一个xml,一个sql;
jdbc知识跟框架无关;
用配置文件,sql、代码铁定都是分离的;
mybatis一样只需要写dao接口,不需要写实现,可运行时生成;
事务处理都是支持的;

疑问:
自动生成sql的功能在哪
一条语句一个sql文件,明显导致文件数量会过多,像mybatis将同类的语句封装到一个xml明显要好。

结论:创新还不够。

以上言论只是探讨,人身攻击的勿扰。
19 楼 quitgame 2013-09-06 16:54
quitgame 写道
使用 Spring-Mybatis 不就实现了吗?


看这里:http://mybatis.github.io/spring/zh/
18 楼 quitgame 2013-09-06 16:53
使用 Spring-Mybatis 不就实现了吗?
17 楼 qq122343779 2013-09-06 08:43
支持下,支持国产开源项目!
16 楼 zhangdaiscott1 2013-09-05 17:33
hopestar 写道
建议楼主采用maven来管理jar包

好的
15 楼 hopestar 2013-09-05 14:38
建议楼主采用maven来管理jar包
14 楼 flownclouds 2013-09-05 08:32
包容理解的心态支持能有耐心研究的同志
13 楼 youarestupid 2013-09-04 11:50
dsjt 写道
引用
不用设置xml,零配置便于维护

换个配置文件的格式而已。

你的眼睛为什么这么亮?
12 楼 dsjt 2013-09-04 11:28
引用
不用设置xml,零配置便于维护

换个配置文件的格式而已。
11 楼 tanyuangen 2013-09-03 17:59
ufopw 写道
jdbctemplate飘过

同样飘过
10 楼 harborgang 2013-09-03 13:40
拜读了源码 整体结构很不错 AOP的思想运用的很不错。对于spring jdbc查询时,sql语句 参数限定的比较死,mybatis 可以动态生成sql。MiniDAO  sql模板 目前还比较限制。不过相当不错了。对于hibernate的项目,如果需要调优sql,可以选择MiniDAO sql模板方式。
9 楼 ufopw 2013-09-03 12:13
jdbctemplate飘过
8 楼 fjjiaboming 2013-09-03 07:27
软文...吹牛逼..
7 楼 山风小子 2013-09-02 21:36
不错,可惜存在性能隐患
6 楼 osacar 2013-09-02 18:45
用来用去,我觉得spring jdbc就够我折腾的了。
5 楼 fykyx521 2013-09-02 18:31
JPA 对应的JDO 不 也不错么

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • MiniDao:轻量级JAVA持久层,Hibernate辅助神器!可无缝集成Hibernate项目,立即拥有Mybatis一样的轻量级SQL能力。(项目产生初衷:因为项目已采用hibernate,但又想像mybatis一样写sql,所以自己手工写了这个小型持久层,不逊色于mybatis,与hibernate集成也非常方便)曾经想过同时集成hibernate和mybatis,但是太重,事务也不好控制。

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

  • MiniDao 比Mybatis还灵活实用的J2EE 持久层轻量级解决方案

    MiniDao 比Mybatis还灵活实用的J2EE 持久层轻量级解决方案

  • 轻量级J2EE持久层解决方案,MiniDao-PE版 1.5.4【版本发布】

    MiniDao-PE版 1.5.4 发布,轻量级J2EE持久化解决方案

  • MiniDao (轻量级JAVA持久层,Hibernate完美助手)

    MiniDao (轻量级JAVA持久层,Hibernate完美助手) 当前最新版本: 1.6.4 (发布日期:20180604) MiniDao产生的初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hibernate能力不足,SQL不好优化...

  • MiniDao持久层 Vs Mybatis

    MiniDao持久层 Vs Mybatis

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

    MiniDao 是一款轻量级 JAVA 持久层框架,基于 SpringJdbc + freemarker 实现,具备 Mybatis 一样的 SQL 分离和逻辑标签能力。

  • 基于SpringJdbc+freemarker实现,具备Mybatis一样的SQL分离和逻辑标签能力的轻量级JAVA持久层框架

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

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

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

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

    MiniDao-PE 简介 MiniDao-PE 是一种持久化解决方案,类似mybatis的持久层解决方案,可以轻松集成Hibernate工程,事务统一管理,解决了Hibernate工程想支持mybaits的功能问题。Hibernate的最佳辅助方案,轻松集成,...

  • MiniDao Framework 1.3.0 发布,J2EE持久化解决方案

    MiniDao Framework 1.3.0 发布,J2EE持久化解决方案

  • 人力资源经理绩效考核表.xls

    人力资源经理绩效考核表

  • 智慧环卫管理平台建设方案Word(211页).docx

    一、智慧环卫管理平台的建设背景与目标 智慧环卫管理平台的建设源于对环卫管理全面升级的需求。当前,城管局已拥有139辆配备车载GPS系统、摄像头和油耗传感器的环卫车辆,但环卫人员尚未配备智能移动终端,公厕也缺乏信息化系统和智能终端设备。为了提升环卫作业效率、实现精细化管理并节省开支,智慧环卫管理平台应运而生。该平台旨在通过信息化技术和软硬件设备,如车载智能终端和环卫手机App,实时了解环卫人员、车辆的工作状态、信息和历史记录,使环卫作业管理透明化、精细化。同时,平台还期望通过数据模型搭建和数据研读,实现更合理的环卫动态资源配置,为环卫工作的科学、健康、持续发展提供决策支持。 二、智慧环卫管理平台的建设内容与功能 智慧环卫管理平台的建设内容包括运行机制体制建设、业务流程设计、智慧公厕系统建设、网络建设、主机和储存平台需求、平台运维管理体系、硬件标准规范体系以及考核评价体系等多个方面。其中,智慧公厕系统建设尤为关键,它能实时监控公厕运行状态,保障公厕的清洁和正常运行。平台建设还充分利用了现有的电子政务网络资源,并考虑了有线和无线网络的需求。在功能上,平台通过普查、整合等手段全面收集环卫车辆、企业、人员、设施、设备等数据,建立智慧环卫基础数据库。利用智能传感、卫星定位等技术实现环卫作业的在线监管和远程监控,实现对道路、公共场所等的作业状况和卫生状况的全面监管。此外,平台还建立了环卫作业网格化管理责任机制,实现从作业过程到结果的全面监管,科学评价区域、部门、单位和人员的作业效果。 三、智慧环卫管理平台的效益与风险规避 智慧环卫管理平台的建设将带来显著的环境、经济和管理效益。环境方面,它将有力推进环境卫生监管服务工作,改善环境卫生状况,为人民群众创造更加清洁、卫生的工作和生活环境。经济方面,通过智慧化监管,大大降低了传统管理手段的成本,提高了监管的准确性和效率。管理方面,平台能够追踪溯源市民反映的问题,如公厕异味、渣土车辆抛洒等,并找到相应的责任单位进行处置,防止类似事件再次发生。同时,平台还拥有强大的预警机制功能,能够在很多环卫问题尚未出现前进行处置。然而,平台建设也面临一定的风险,如部门协调、配合问题,建设单位选择风险以及不可预测的自然灾害等。为了规避这些风险,需要加强领导、统一思想,选择优秀的系统集成商承接项目建设,并做好计算机和应用系统的培训工作。同时,也要注意标准制定工作和相关法律法规的制定工作,以保证系统建设完成后能够真正为环卫管理工作带来便利。

  • apache-parent-10-14.el7.x64-86.rpm.tar.gz

    1、文件内容:apache-parent-10-14.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/apache-parent-10-14.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

  • 用于卫星通信的CTS天线

    用于卫星通信的圆极化CTS天线研究

  • 人事档案登记及查询系统.xlsx

    人事档案登记及查询系统

  • 12 -防损部经理绩效考核表1.xlsx

    12 -防损部经理绩效考核表1

  • 泰尔指数模型stata全流程代码+数据+文献(数据权威)

    ## 一、泰尔指数模型stata全流程代码+数据+文献 参考C刊《农业经济问题》朱红根(2023)老师的做法,用泰尔指数是衡量个人或地区之间收入差距的重要指标,本文利用泰尔指数分析中国区域内和区域间数字乡村发展水平的差异,测算了全国总体差异、区域内差异、区域间差异以及相关贡献率。此资料包括stata全流程代码、案例数据、参考文献,用excel计算有标注有过程 ,并且参照文献讲的。 ## 二、2005-2021年城乡收入差距与泰尔指数:原始数据+测算结果 泰尔熵标准(Theil’s entropy measure)或者泰尔指数(Theil index)是衡量个人之间或者地区间收入差距(或者称不平等度)的指标。又称泰尔系数或锡尔指数,但我还是习惯叫泰尔指数。Theil指数用来表示区域经济差异状况,数值越大则差异程度越大。 数据名称:城乡收入差距与泰尔指数(原始数据+测算) 数据年份:2005-2021年 指标变量:泰尔指数、城镇收入占农村收入之比、城镇居民人均可支配收入、农村居民人均可支配收入、乡村人口、全体居民人均可支配收入、城镇人口、年末常住人口 测算公式:

  • 34 -配送部经理绩效考核表1.xlsx

    34 -配送部经理绩效考核表1

  • [2024最新更新]全国城投公司数据大全(数据权威)

    1.资料名称:2021-1998年城投公司数据大全 2.数据指标:序号、公司名称、区域、城投评分、省内排名、最新主体评级、行政等级、 股东背景、股权关系、平台重要性、城投口径、实控人、 总资产(亿元)、 货币资金(亿元)、土地资产(亿元)、受限资产(亿元)、应收账款(亿元) 应收类款项政府占比(%)、营业收入(亿元)、公益性&准公益性主营占比(%)、归母净利润(亿元)、政府补助(亿元)、总资产报酬率(%)、有息债务(亿元)、 短期债务(亿元)、借款(亿元)、债券余额(亿元)、私募债占比(%)、 非标融资(亿元)、资产负债率(%)、债务资本化比率(%) 对外担保比例(%)、EBITDA/利息(倍)、EBITDA全部债务比(%)、授信余额(亿元)、 最新报告期 、申万行业 城投公司是城市建设投资公司的简称,是全国各大城市政府投资融资平台,起源于1991年,承担相应的政府职能,是特殊市场经营体。 此类城投公司大多是不具备盈利能力的,属于事业单位或者国有独资公司性质,他们是通过政府补贴的方式实现盈利,属于带有政府性质的特殊市场经营体。

  • 推广立方连通圈网络的Hamilton分解的算法.pdf

    推广立方连通圈网络的Hamilton分解的算法.pdf

Global site tag (gtag.js) - Google Analytics