2019独角兽企业重金招聘Python工程师标准>>>

MiniDao普通项目集成方案

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

}

}

}

转载于:https://my.oschina.net/201003674/blog/650200

MiniDao普通项目集成方案相关推荐

  1. 微前端系列讲解--应用集成方案(qiankun+umi+vue)

    1. 微前端项目架构及选型介绍 1.1. 微前端选型概述 微前端架构是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用.考 ...

  2. 完整项目持续集成方案

    完整项目持续集成方案 [docker|jenkins|git] 工具 本次持续集成使用到工具有:jenkins.maven.jdk.docker.docker私服[register].git. 发布流 ...

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

    项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了vue+element-ui JYAdmin 后台管理系统模板-集成方案,从零到一的手写搭建全过程. ...

  4. element vue 动态单选_软件更新丨vue-element-admin 4.0.0 beta 发布,后台集成方案

    vue-element-admin 4.0.0 beta 发布了. vue-element-admin 是一个后台集成解决方案,它基于 vue 和 element.它使用了最新的前端技术栈,内置了 i ...

  5. BT项目的运作之一项目建设方案与BT总包方的选择

    BT项目的运作之一项目建设方案与BT总包方的选择 [ 2009-12-14 )      很久之前就计划写这方面的个人思考与小结,今天开个头. 首先要明确一个概念,BT总包方不等同于系统集成总包方.在 ...

  6. 基于 EventBridge 构建 SaaS 应用集成方案

    引言 事件驱动架构(EDA)是一种以事件为纽带,将不同系统进行解耦的异步架构设计模型.在 EDA 中,事件驱动的运行流程天然地划分了各个系统的业务语义,用户可以根据需求对事件与针对此事件做出的响应灵活 ...

  7. (十七)java版spring cloud+spring boot 社交电子商务平台-spring+springmvc+kafka分布式消息中间件集成方案...

    电子商务平台源码请加企鹅求求:一零三八七七四六二六.kafka消息平台使用spring+kafka的集成方案,详情如下: 使用最高版本2.1.0.RELEASE集成jar包:spring-integr ...

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

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

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

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

最新文章

  1. 权限组件(10):三级菜单的展示和增删改查
  2. 09最短小说:意见统一
  3. 权威解读 | 世界互联网大会蓝皮书
  4. ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...
  5. php mysqli查询实例,php mysqli查询语句返回值类型实例分析
  6. python stdout stderr 一起输出_Python日志记录在stdout和stderr之间拆分
  7. Ubuntu 16.04安装PPA图形化管理工具Y PPA Manager
  8. File Manager所支持的文件
  9. 大数据框架Storm的介绍
  10. 【小教程】steam长展柜制作
  11. KDJ算法详解,比百度百科要详细
  12. react项目中遇到的几个问题
  13. 自我激励二十法(zz)
  14. 基于时域表示的序列数据分类方法(一)——基于距离度量的序列数据分类方法
  15. css文字高光,CSS实现文字高光水波渐变的动态效果实例
  16. if单选,双选,多选及switch多选择结构
  17. 王佩丰excel2010基础教程学习笔记(第六讲到第十讲)
  18. 【新梦想学员干货】必看!年薪30W的软件测试“老司机”工作经验。
  19. 图像处理:距离变换distance transform
  20. 空间音频已来,TWS 4.0时代已来!TWS200带来全新听觉体验

热门文章

  1. 机器翻译难敌人类灵活多变的语言
  2. 今天的 IBM —— 一封来自 IBM 董事长、首席执行官 Arvind Krishna 的公开信
  3. 城市智能化发展中,AI公司应该做什么?
  4. 城市“脑梗” 当前城市大脑面临的困境
  5. 一幅图读懂量子力学(数学的判决)
  6. CCAI 2019 | 郑南宁:“自觉性AI技术”可助力无人驾驶
  7. 《全球人工智能发展报告(2018)》发布:一览全球AI领域竞争态势
  8. 国内5G工程建设面临的6大挑战
  9. 2019数字化趋势:未来5年政府、零售数字化程度将达80%
  10. 关于自动驾驶汽车法律政策的十点思考