1、导入必要的jar包:

2、spring配置文件增加如下配置:

<!-- Hibernate工具栏配置-->

<bean id="miniDaoHiberCommonDao"

class="org.jeecgframework.minidao.hibernate.dao.impl.GenericBaseCommonDao">

<property name="sessionFactory">

<ref bean="sessionFactory"/>

</property>

</bean>

<!-- MiniDao动态代理类 -->

<bean id="miniDaoHandler"class="org.jeecgframework.minidao.aop.MiniDaoHandler">

<property name="jdbcTemplate" ref="jdbcTemplate"></property>

</bean>

<!-- 注册MiniDao接口,配置该bean,在web容器启动时会扫描指定包下的含有@MiniDao注解的接口类,在使用到接口类的方法时会通过动态代理的方式来调用指定方法 -->

<bean class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">

<property name="packagesToScan">

<list>

<value>examples.dao.*</value>

</list>

</property>

</bean>

 

3、编写数据接口层接口类(该类需增加@MiniDao注解才会被MiniDao所识别)的方式有3种:在其接口方法上增加@Arguments注解或@Sql注解,或者该类继承MiniDaoSupportHiber<T>类的方式来告诉MiniDao的动态代理类需要以哪种方式来进行数据库的交互。

1)@Arguments:如果使用该注解则需要增加对应的sql文件,文件名为“接口名_方法名.sql”,该文件的存放位置与接口类所在的包同级,包名为sql,该注解的数量与sql文件的数量相同,如果有多个参数用逗号分隔,参数名称应与sql文件内的一致,在sql文件中使用参数时应在参数前加“:”(冒号),如果该参数为实体类,则通过“.”(英文状态下的点)导航其属性,该sql文件支持freemarker的语法。

2)@Sql:如果使用该注解则直接在该注解类写sql代码,如果有参数则sql语句的写法与@Arguments方式的sql文件写法相同。

3)继承MiniDaoSupportHiber<T>类:可直接调用该父类的方法。

 

示例:

接口和SQL文件对应目录

接口定义[EmployeeDao.java]

@MiniDao

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(*) FROMemployee")

Integer getCount();

@Arguments("employee")

int update(Employee employee);

@Arguments("employee")

void insert(Employee employee);

}

SQL文件[EmployeeDao_getAllEmployees.sql]

SELECT * FROM employee where1=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>

MiniDao接口配置

<!-- 注册MiniDao接口 -->

<beanclass="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">

<propertyname="packagesToScan">

<list>

<value>examples.dao.*</value>

</list>

</property>

</bean>

测试代码

public class Client {

public static voidmain(String args[]) {

BeanFactory factory = newClassPathXmlApplicationContext(

"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"));

}

}

}

接口定义[JeecgDemoDao.java]

@MiniDao

public interface JeecgDemoDaoextendsMiniDaoSupportHiber<JeecgDemo>{

@Sql("SELECT count(*)FROM jeecg_demo")

Integer getCount();

}

MiniDao接口配置

<!-- 注册MiniDao接口 -->

<beanclass="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">

<propertyname="packagesToScan">

<list>

<value>examples.dao.*</value>

</list>

</property>

</bean>

测试代码

public class Client {

public static voidmain(String args[]) {

BeanFactory factory = newClassPathXmlApplicationContext(

"applicationContext.xml");

JeecgDemoDaojeecgDemoDao = (JeecgDemoDao) factory.getBean("jeecgDemoDao");

jeecgDemoDao.getCount();

JeecgDemo s =jeecgDemoDao.getByIdHiber(JeecgDemo.class,"402880e7408f53a401408f53a5aa0000");

if(s!=null){

System.out.println(s.getUserName());

}

}

}

MiniDao普通项目集成方案的更多相关文章

  1. vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】

    项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了: 1.跨域配置 2.axios请求封装 3.eslint配置 4.环境dev,test,pro(开 ...

  2. Jmeter+Ant+Jenkins持续集成方案改进

    关于Jmeter+Ant+Jenkins如何搭建持续集成环境,网上资料一大把,就不多说了,本文主要谈一下期间的问题及扩展该持续集成方案. 其实核心的流程不复杂,Jenkins管理构建项目,Ant配置脚 ...

  3. iOS-Cordova集成开发,已有项目集成cordova

    iOS-Cordova集成开发,已有项目集成cordova 项目组准备开发一个APP,要求Android和iOS端页面完全一致,除了一个页面跟业务相关的不同,其他界面基本一致,因此,萌生一个想法,关于 ...

  4. (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案二

    http://blog.csdn.net/yerenyuan_pku/article/details/52894958 前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Str ...

  5. (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一

    http://blog.csdn.net/yerenyuan_pku/article/details/52888808 前面我们已经集成了Spring4.2.5+Hibernate4.3.11这两个框 ...

  6. 日志服务与SIEM(如Splunk)集成方案实战

    背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规.审计.与其他相关日志能够导入到您的安全运维中心(SOC)中. 名词解释 LOG( ...

  7. JYadmin-react-antd react+antd封装的优秀后台模板集成方案("^1.0.0")

    版本:[ "JYadmin-react-antd": "^1.0.0"] 版权所有:微信公众号[微新悦] 原文链接:https://www.weixinyue. ...

  8. 现有iOS项目集成React Native过程记录

    在<Mac系统下React Native环境搭建>配置了RN的开发环境,然后,本文记录在现有iOS项目集成React Native的过程,官方推荐使用Cocoapods,项目一开始也是使用 ...

  9. Spring+Struts集成(方案一)

    SSH框架是现在非常流行的框架之一,本文接下来主要来对Spring和Struts的集成进行展示. 集成原理:在Action中取得BeanFactory,通过BeanFactory取得业务逻辑对象. 集 ...

随机推荐

  1. java的面向对象

    Java是1995年诞生.前身oak,后来改名为java. 面向对象的编程思想:对象是万事万物. 对象是由两部分组成的:属性和方法 1:属性是对象的静态特性(名词) 2:方法是对象的动态特性(动词) ...

  2. win7自带windows media player 已停止工作

    解决方法如下: 在计算机开始,菜单找到控制面板 ,然后打开程序和功能,选择打开或关闭window功能,媒体功能.再取消windows Media Center Windows MediaPlayer选 ...

  3. javascript 对象属性的get set访问器写法

    function Person() {     var age = new Date().getFullYear() - 18;     Object.defineProperty(this, &qu ...

  4. 中国排名前100的IT公司 (转)

    排序 单位名称 软件收入 1 华为技术有限公司 622360  2 中兴通讯股份有限公司 601331  3 海信集团有限公司 448641  4 UT斯达康通讯有限公司 386763  5 海尔集团 ...

  5. dom4j 学习总结

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platfo ...

  6. [Leetcode][JAVA] Triangled

    Triangle Given a triangle, find the minimum path sum from top to bottom. Each step you may move to a ...

  7. mysq双主模式

    准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装.主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.131.130,MyS ...

  8. PHP通过文件存储来实现缓存

    在一些数据库数据记录较大,但是服务器有限的时候,可能一条MySQL查询就会好几百毫秒,一个简单的页面一般也有十几条查询,这个时候也个页面加载下来基本要好几秒了,如果并发量高的话服务器基本就瘫痪了,造成 ...

  9. ASP.NET Core 源码阅读笔记(2) ---Microsoft.Extensions.DependencyInjection生命周期管理

    在上一篇文章中我们主要分析了ASP.NET Core默认依赖注入容器的存储和解析,这一篇文章主要补充一下上一篇文章忽略的一些细节:有关服务回收的问题,即服务的生命周期问题.有关源码可以去GitHub上 ...

  10. Jpeg2000 简介

    http://www.baike.com/wiki/Jpeg2000 总结Jpeg2000的六个方面:    ⑴ JPEG2000可以方便地实现渐进式传输,这是JPEG2000的重要特征之一.看到这种 ...