MiniDao普通项目集成方案
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普通项目集成方案相关推荐
- 微前端系列讲解--应用集成方案(qiankun+umi+vue)
1. 微前端项目架构及选型介绍 1.1. 微前端选型概述 微前端架构是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用.考 ...
- 完整项目持续集成方案
完整项目持续集成方案 [docker|jenkins|git] 工具 本次持续集成使用到工具有:jenkins.maven.jdk.docker.docker私服[register].git. 发布流 ...
- vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇1】
项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了vue+element-ui JYAdmin 后台管理系统模板-集成方案,从零到一的手写搭建全过程. ...
- element vue 动态单选_软件更新丨vue-element-admin 4.0.0 beta 发布,后台集成方案
vue-element-admin 4.0.0 beta 发布了. vue-element-admin 是一个后台集成解决方案,它基于 vue 和 element.它使用了最新的前端技术栈,内置了 i ...
- BT项目的运作之一项目建设方案与BT总包方的选择
BT项目的运作之一项目建设方案与BT总包方的选择 [ 2009-12-14 ) 很久之前就计划写这方面的个人思考与小结,今天开个头. 首先要明确一个概念,BT总包方不等同于系统集成总包方.在 ...
- 基于 EventBridge 构建 SaaS 应用集成方案
引言 事件驱动架构(EDA)是一种以事件为纽带,将不同系统进行解耦的异步架构设计模型.在 EDA 中,事件驱动的运行流程天然地划分了各个系统的业务语义,用户可以根据需求对事件与针对此事件做出的响应灵活 ...
- (十七)java版spring cloud+spring boot 社交电子商务平台-spring+springmvc+kafka分布式消息中间件集成方案...
电子商务平台源码请加企鹅求求:一零三八七七四六二六.kafka消息平台使用spring+kafka的集成方案,详情如下: 使用最高版本2.1.0.RELEASE集成jar包:spring-integr ...
- 日志服务与SIEM(如Splunk)集成方案实战
背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规.审计.与其他相关日志能够导入到您的安全运维中心(SOC)中. 名词解释 LOG( ...
- 日志服务与SIEM(如Splunk)集成方案实战 1
背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规.审计.与其他相关日志能够导入到您的安全运维中心(SOC)中. 名词解释 LOG( ...
最新文章
- 权限组件(10):三级菜单的展示和增删改查
- 09最短小说:意见统一
- 权威解读 | 世界互联网大会蓝皮书
- ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...
- php mysqli查询实例,php mysqli查询语句返回值类型实例分析
- python stdout stderr 一起输出_Python日志记录在stdout和stderr之间拆分
- Ubuntu 16.04安装PPA图形化管理工具Y PPA Manager
- File Manager所支持的文件
- 大数据框架Storm的介绍
- 【小教程】steam长展柜制作
- KDJ算法详解,比百度百科要详细
- react项目中遇到的几个问题
- 自我激励二十法(zz)
- 基于时域表示的序列数据分类方法(一)——基于距离度量的序列数据分类方法
- css文字高光,CSS实现文字高光水波渐变的动态效果实例
- if单选,双选,多选及switch多选择结构
- 王佩丰excel2010基础教程学习笔记(第六讲到第十讲)
- 【新梦想学员干货】必看!年薪30W的软件测试“老司机”工作经验。
- 图像处理:距离变换distance transform
- 空间音频已来,TWS 4.0时代已来!TWS200带来全新听觉体验
热门文章
- 机器翻译难敌人类灵活多变的语言
- 今天的 IBM —— 一封来自 IBM 董事长、首席执行官 Arvind Krishna 的公开信
- 城市智能化发展中,AI公司应该做什么?
- 城市“脑梗” 当前城市大脑面临的困境
- 一幅图读懂量子力学(数学的判决)
- CCAI 2019 | 郑南宁:“自觉性AI技术”可助力无人驾驶
- 《全球人工智能发展报告(2018)》发布:一览全球AI领域竞争态势
- 国内5G工程建设面临的6大挑战
- 2019数字化趋势:未来5年政府、零售数字化程度将达80%
- 关于自动驾驶汽车法律政策的十点思考