版权声明:本文为博主原创文章,未经博主同意不得转载。 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自己主动生成

13.2.  接口和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"));

   
}

}

}

13.5. 
环境搭建

环境: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 介绍的更多相关文章

  1. 开发指南专题八:JEECG微云高速开发平台数据字典

       开发指南专题八:JEECG微云高速开发平台数据字典的使用 1.标签中使用数据字典 数据字典为系统中可能用到的字典类型数据提供了使用的便利性和可维护性.下面拉框标签<t:dictSele ...

  2. 开发指南专题六:JEECG微云高速开发平台代码生成

    开发指南专题六:JEECG微云高速开发平台代码生 1.1. 代码生成扫描路径配置 用代码生成器生成代码后.须要进行相关配置配置,扫描注入control.service.entity等; 具体操作过程例 ...

  3. 开发指南专题五:JEECG微云高速开发平台代码生成器

    开发指南专题五:JEECG微云高速开发平台代码生成器 1.1. Maven开发环境搭建 在搭建jeecg的maven开发环境之前,须要先配置好本机的maven环境,并在eclipse中安装好m2ecl ...

  4. 开发指南专题二:JEECG微云高速开发平台JEECG框架初探

    开发指南专题二:JEECG微云高速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境界址:http://demo.jeecg.org:8090/能够看 ...

  5. 开发指南专题十一:JEECG微云高速开发平台--基础用户权限

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26580037     开发指南专题 ...

  6. 专题开发十二:JEECG微云高速开发平台-基础用户权限

      专题开发十二:JEECG微云高速开发平台-基础用户权限 11.3.4自己定义button权限 Jeecg中.眼下button权限设置,是通过对平台自己封装的button标签(<t:dgFun ...

  7. 专题开发十三:JEECG微云高速开发平台-附录

    专题开发十三:JEECG微云高速开发平台-附录 12.1UI库经常使用控件參考演示样例 序号 控件 解决方式 參考演示样例 1 datagrid数据列表.字段採用数据字典显示文本 <t:dgCo ...

  8. 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建

    开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重

    为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都 ...

随机推荐

  1. MVC应用程序JsonResult()的练习

    这次学习MVC应用程序,尝试使用jQuery的获取数据,并显示于视图上,关键技术还是javascript的一个子集Json.我们先去HomeController写一个方法JsonResult GetJ ...

  2. TRIZ解决问题方法

    个人觉的成功是有规律的,那些成功的人士,都有一套处理事情的秘籍.只要我们的思维方式把那些秘籍融会贯通,并快速执行,我们有一天也会成功的. TRIZ解决问题的5点方法. 1.确定最终目标. 2.列出阻碍 ...

  3. java设计模式-----22、状态模式

    概念: State模式也叫状态模式,是行为设计模式的一种.State模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样. 根据这个概念,我们举个例子 public c ...

  4. JavaOne 2016主旨演讲畅谈Java近期及远期规划

    在 JavaOne 2016 主题演讲开场,来自 Oracle 的 Java 产品管理负责人 Sharat Chander 指出 Java 盛行于个人和工作的日常生活各个领域,无论是大数据.物联网甚至 ...

  5. django-分页paginator

    分页 Django提供了一些类来帮助你管理分页的数据 -- 也就是说,数据被分在不同页面中,并带有“上一页/下一页”标签.这些类位于 django/core/paginator.py 中. 示例 向 ...

  6. 记一次MySQL安装出现的坑爹问题。。。

    关键词:mysql安装 msvcr100.dll缺失  vc++2010 : win10系统首次安装mysql,图方便下载了图形界面的安装包(5.6.4),本以为小事一桩:装一半失败.卸载清注册表.重 ...

  7. element-ui Tag、Dialog组件源码分析整理笔记(五)

    Tag 标签组件 <script> export default { name: 'ElTag', props: { text: String, closable: Boolean, // ...

  8. 怎样删除PeopleSoft进程服务器定义

    比如在克隆环境时候,把生产的环境克隆到DEV环境,你可能会在进程调度服务器中看到了生产的进程服务器,例如:你可能会在进程调度的时候选择一个server,但是这个server并没有在psadmin下创建 ...

  9. AutoCAD.net-错误消息大全

    case Acad::eOk:lstrcpy(Glb_AcadErrorInfo,_T("正确"));break;case Acad::eNotImplementedYet:lst ...

  10. 配置方法数超过 64K 的应用

    随着 Android 平台的持续成长,Android 应用的大小也在增加.当您的应用及其引用的库达到特定大小时,您会遇到构建错误,指明您的应用已达到 Android 应用构建架构的极限.早期版本的构建 ...