开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/zhangdaiscott/article/details/27068645
开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍
13.MiniDao 介绍
13.1. MiniDao简单介绍及特征
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自己主动生成
第一步:接口定义[EmployeeDao.java]
@MiniDao
public interface EmployeeDao {
@Arguments("employee")
public List<Map>getAllEmployees(Employee employee);
@Arguments("empno")
Employee getEmployee(String empno);
@Arguments({"empno","name"})
MapgetMap(String empno,String name);
@Sql("SELECT count(*) FROMemployee")
Integer getCount();
@Arguments("employee")
intupdate(Employee employee);
@Arguments("employee")
voidinsert(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>
13.3. MiniDao接口配置
<!--
注冊MiniDao接口 -->
<bean class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
<propertyname="packagesToScan">
<list>
<value>examples.dao.*</value>
</list>
</property>
</bean>
13.4 測试代码
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(Mapmp: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"));
}
}
}
环境:Spring3.X,Hibernate 3以上
MiniDao依赖:org.jeecgframework.minidao-1.2.1.jar
13.5.1. MiniDao与Spring集成
第一步:新建MiniDao的spring配置文件
文件名称:spring-minidao.xml(能够自己定义),仅仅要让spring扫描到这个文件就可以。
扫描方法一:
在web.xml中的spring监听器中扫描规则中包括spring-minidao.xml。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</context-param>
扫描方法二:
在spring的配置文件里引入spring-minidao.xml。
<import resource="classpath*:spring-minidao.xml" />
MiniDao配置具体解释
MiniDao对springJdbc的支持(MiniDao的核心基础配置)
<!-- MiniDao动态代理类
-->
<bean id="miniDaoHandler" class="org.jeecgframework.minidao.aop.MiniDaoHandler">
<!--
springjdbc,必须依赖 -->
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
<!--
注冊MiniDao接口 -->
<bean class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
<property name="packagesToScan">
<list>
<!--
能够以包名注冊,自己主动扫描包以下的Dao接口 -->
<value>jeecg.cgreport.dao.*</value>
<value>jeecg.cgform.dao.*</value>
</list>
</property>
</bean>
13.5.2. MiniDao与Hibernate集成
前提是Hibernate已经由Spring容器管理,在MiniDao的配置文件里直接增加Hibernate支持就可以。
<!-- Hibernate MiniDao -->
<bean id="genericBaseCommonDao"
<!--
对hibernate实体通用操作的实现类 -->
class="org.jeecgframework.minidao.hibernate.dao.impl.GenericBaseCommonDao">
<!--
hibernate的sessionFactory -->
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍的更多相关文章
- 开发指南专题八:JEECG微云高速开发平台数据字典
开发指南专题八:JEECG微云高速开发平台数据字典的使用 1.标签中使用数据字典 数据字典为系统中可能用到的字典类型数据提供了使用的便利性和可维护性.下面拉框标签<t:dictSele ...
- 开发指南专题六:JEECG微云高速开发平台代码生成
开发指南专题六:JEECG微云高速开发平台代码生 1.1. 代码生成扫描路径配置 用代码生成器生成代码后.须要进行相关配置配置,扫描注入control.service.entity等; 具体操作过程例 ...
- 开发指南专题五:JEECG微云高速开发平台代码生成器
开发指南专题五:JEECG微云高速开发平台代码生成器 1.1. Maven开发环境搭建 在搭建jeecg的maven开发环境之前,须要先配置好本机的maven环境,并在eclipse中安装好m2ecl ...
- 开发指南专题二:JEECG微云高速开发平台JEECG框架初探
开发指南专题二:JEECG微云高速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境界址:http://demo.jeecg.org:8090/能够看 ...
- 开发指南专题十一:JEECG微云高速开发平台--基础用户权限
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26580037 开发指南专题 ...
- 专题开发十二:JEECG微云高速开发平台-基础用户权限
专题开发十二:JEECG微云高速开发平台-基础用户权限 11.3.4自己定义button权限 Jeecg中.眼下button权限设置,是通过对平台自己封装的button标签(<t:dgFun ...
- 专题开发十三:JEECG微云高速开发平台-附录
专题开发十三:JEECG微云高速开发平台-附录 12.1UI库经常使用控件參考演示样例 序号 控件 解决方式 參考演示样例 1 datagrid数据列表.字段採用数据字典显示文本 <t:dgCo ...
- 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建
开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重
为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都 ...
随机推荐
- MVC之——Razor语法
实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download View里所有以@开头或@(/*代码*)的部分代码都会 ...
- 深入贯彻闭包思想,全面理解JS闭包形成过程
谈起闭包,它可是JavaScript两个核心技术之一(异步和闭包),在面试以及实际应用当中,我们都离不开它们,甚至可以说它们是衡量js工程师实力的一个重要指标.下面我们就罗列闭包的几个常见问题,从回答 ...
- js实现iview表格 排名列
(有误,请勿观看) 一.排名的简单实现 //排名例子1 //需要排名的数组 //var myArray = [5,7, 7, 9, 8, 6, 23]; //新数组 //var thisArray = ...
- 撩课-Web大前端每天5道面试题-Day32
1.module.export.import是什么,有什么作用? module.export.import是ES6用来统一前端模块化方案的设计思路和实现方案. export.import的出现统一了前 ...
- Evolution(矩阵快速幂)zoj2853
Evolution Time Limit: 5 Seconds Memory Limit: 32768 KB Description Evolution is a long, long pr ...
- Android 7.0 以上保留数据去除锁屏密码的方法
在很多情况下,由于我们的疏忽,导致忘记了锁屏密码.也没有开启 USB 调试,内置存储中还有要保留的数据.我们需要在不清除数据的情况下删除锁屏密码.接下来我们就介绍该如何做. 注意事项 首先要注意,这个 ...
- Android四大组件-Broadcast Receiver
http://www.jianshu.com/p/1013a366cc72 http://www.jianshu.com/p/ca3d87a4cdf3 前言 基础知识. 1.Android广播分为两个 ...
- ORM--Entity Framework 学习(01)
关键词:Entity Framework:微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上.EF提供变更跟踪.唯一性约束.惰性加载.查询事物等.开发 ...
- github 账号创建
1.注册 注册地址: https://github.com/join?source=header-home 2.建立组织 (1)点击头像旁边的"+",选择New organiz ...
- cf232E. Quick Tortoise(分治 bitset dp)
题意 题目链接 Sol 感觉这个思路还是不错的 #include<bits/stdc++.h> using namespace std; const int MAXN = 501, SS ...