版权声明:本文为博主原创文章,未经博主同意不得转载。 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. 6.C#知识点:反射

    1.反射是什么? 反射提供描述组件,模块和类型的对象(类型为Type).您可以使用反射来动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型,并调用其方法或访问其字段和属性.如果您在代码中使 ...

  2. [javaEE] Servlet的调用过程和生命周期

    在http协议的请求头中获取到要访问的资源,查找web.xml文件找到对应的servelet Sevlet的生命周期 Servlet在第一次被访问的时候,服务器创建出Servlet对象,创建出对象以后 ...

  3. CSS学习笔记02 CSS选择器

    1.通配符选择器 通配符选择器用“*"号表示,是所有选择器中作用范围最广的,能匹配页面中所有的元素 /*设置当前页面中所有标签的颜色为红色*/ * { color: red; } 2.标签选 ...

  4. 【Java并发编程】12、ThreadLocal 解决SimpleDateFormat非线程安全

    大致意思:Tim Cull碰到一个SimpleDateFormat带来的严重的性能问题,该问题主要有SimpleDateFormat引发,创建一个 SimpleDateFormat实例的开销比较昂贵, ...

  5. protocol buffer c#

    第一.打开vs中的Nuget

  6. JavaScript高级编程———JSON

    JavaScript高级编程———JSON < script > /*JSON的语法可以表达一下三种类型的值 简单值:使用与javas相同的语法,可以在JSON中表达字符串.数值.布尔值和 ...

  7. @NotNull、@NotEmpty、@NotBlank的区别

    Spring中@NotNull.@NotEmpty.@NotBlank的区别@NotNull:用于基本数据类型@NotEmpty:用于集合类@NotBlank:用于String上面

  8. onkeyup小练习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. innerHTML在ie9有部分无法添加

    在高版本的浏览器,innerHTML就如正常时候,里面可以套任何字符串,但是在ie9下,innerHTML不能是table ,tr td等标签字符串,解决方法如下: 在table添加一个tr var ...

  10. Git免输入密码提交

    1.首先你需要下载 http://files.cnblogs.com/files/zhanqun/putty.7z 文件夹内包含下面这些文件: