MiniDao

持久化解决方案
授权协议 GPL
开发语言 Java
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 国产
投 递 者 蓬长恨
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

  • 1.O/R mapping不用设置xml,零配置便于维护
  • 2.不需要了解JDBC的知识
  • 3.SQL语句和java代码的分离
  • 4.可以自动生成SQL语句
  • 5.接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法对应的sql 它会通过AOP自动生成实现类
  • 6.支持自动事务处理和手动事务处理
  • 7.支持与hibernate轻量级无缝集成
  • 8.MiniDao整合了Hibernate+mybatis的两大优势,支持实体维护和SQL分离
  • 9.SQL支持脚本语言

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

 

接口和SQL文件对应目录

github

接口定义[EmployeeDao.java]

@MiniDao
public interface EmployeeDao {
 @Arguments("employee")
 public ListgetAllEmployees(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 employee.name ?exists>
and name = :employee.name

 
<#if employee.empno ?exists>
and empno = :employee.empno

 

MiniDao接口配置

<!-- 注册MiniDao接口 -->
<bean class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
    <property name="packagesToScan">
        <list>
            <value>examples.dao.*</value>
        </list>
    </property>
</bean>

测试代码

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();
    Listlist =  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"));
    }
}
}
  • MiniDao MiniDao使用指南.pdf (866.8 KB) 下载次数: 0

  • MiniDao使用指南 作者: 张代浩 2013/08/16 P-2 目录  培训对象 使用MiniDao进行开发的开发人员  培训目的 使开发人员掌握通过MiniDao访问Mysql数据 库的用法和技巧   P-3 目录  培训内容  MiniDao简介及特征  MiniDao的安装及基本概念  MiniDao的使用介绍  参考资料  Spring(IOC/AOP/JDBC)

  • 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL能力不足,SQL不好优化和也无法分离。 这个时候大家就想到集成mybatis,但是一个项目既用hibernate又用mybatis,显得很重事务也不好控制。大家常规的做法是采用springjdbc来实现原生SQL编写,但是同样也存在问题,SQL无法分离也没有逻辑标签能力。 所以Jeecg针对springjdbc+freemarke

  • 机缘巧合接触到国产轻量级持久层开源框架MiniDao,了解该框架也有一段时间了,但是一直都没有深入的研究底层代码,最近花了一些时间研究了一下实现原理。MiniDao官方提供的版本不支持分布式事务,我在官方的MiniDao-pe-1.6版本上实现了该功能,满足了现有项目的需求。以下具体分析该功能的实现: 步骤: 一、现有的问题 二、深入解析源码,实现分库事务功能 三、单元测试 一、分析现有的问题 在

  •         今天修改了MiniDao的部分代码,突然想起了一个让自己疑惑的问题,为什么需要MiniDao?         MiniDao是什么,不知道的朋友可以看看这里http://zhangdaiscott.github.io/MiniDao/       自己改的MiniDao https://code.csdn.net/jueyue/minidao_xml         公司是使用i

 相关资料
  • 本文向大家介绍Redis的持久化方案详解,包括了Redis的持久化方案详解的使用技巧和注意事项,需要的朋友参考一下 Redis支持RDB与AOF两种持久化机制,持久化可以避免因进程异常退出或down机导致的数据丢失问题,在下次重启时能利用之前的持久化文件实现数据恢复。 RDB持久化 RDB持久化即通过创建快照(压缩的二进制文件)的方式进行持久化,保存某个时间点的全量数据。RDB持久化是Redis默

  • 主要内容:1 数据持久化,2 RDB(Redis DataBase)快照,2.1 RDB的原理,2.1 RDB的优缺点,2 AOF(append-only file)追加,2.1 AOF的原理,2.2 AOF重写,2.3 AOF的优缺点,3 混合持久化策略详细介绍了Redis的持久化机制,包括RDB与AOF持久化,以及混合持久化。 1 数据持久化 为了重启机器、机器故障、系统故障之后恢复数据,将内存中的数据写入到硬盘里面,这就是持久化,Redis恰好支持数据的持久化,这也是相比于Memcache

  • Akka持久化使有状态的actor能留存其内部状态,以便在因JVM崩溃、监管者引起,或在集群中迁移导致的actor启动、重启时恢复它。Akka持久化背后的关键概念是持久化的只是一个actor的内部状态的的变化,而不是直接持久化其当前状态 (除了可选的快照)。这些更改永远只能被附加到存储,没什么是可变的,这使得高事务处理率和高效复制成为可能。有状态actor通过重放保存的变化来恢复,从而使它们可以重

  • 问题内容: 包括我在内的一些人一直在努力将来自不同模块(jar)的实体合并到单个持久性单元中(尤其是 JavaSE ,例如此处的JPA 2.0:从不同的jar自动将实体类添加到PersistenceUnit中)。根据答案,没有简单直接的方法可以做到这一点。解决方案之一是在单个持久性单元文件中列出所有jar中的所有类,但这并不是很优雅。我可能不小心找到了另一种方法。通常,我所有的实体类都是使用 注释

  • 本文向大家介绍Redis两种持久化方案RDB和AOF详解,包括了Redis两种持久化方案RDB和AOF详解的使用技巧和注意事项,需要的朋友参考一下 本文主要针对Redis 有两种持久化方案RDB和AOF做了详细的分析,希望我们整理的内容能够帮助大家对这个两种方案有更加深入的理解。 Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)

  • 问题内容: 将Terracotta用作持久性解决方案(替换数据库)是否是一个好主意?我特别想知道有关数据完整性问题和对事务系统的支持。 问题答案: Terracotta是事务性的(同步块形成修改对象的事务),但不是,并且也不希望与JTA兼容。有交易的一个相当长时间的讨论和有关兵马俑一些常见的误解在这里。 我写了一篇关于数据生命周期的博客文章,该文章应如何构架您确定使用Terracotta的机会的想