mapper @Select()注解开发,使用模板 if 和循环
if
@Select({"<script>",
"SELECT " +
" mu.id userId, " +
" eui.id userInfoId, " +
" mu.user_name userName, " +
" com.company_id AS comId, " +
" com.company_name comName, " +
" eui.talent_type talentType, " +
" eui.self_introduction selfIntroduction, " +
" eui.working_years workingYears, " +
" eui.education education, " +
" mu.icon_url iconUrl " +
" FROM " +
" mky_user mu, " +
" em_company c, " +
" em_company_record com, " +
" em_user_info eui, " +
" em_aptitude_maintain_approve ea " +
" WHERE 1=1 ",
" <when test='searchStr!=null'> ",
" AND ( mu.user_name LIKE #{searchStr} OR com.company_name LIKE #{searchStr} ) ",
" </when> ",
" <when test='firstId!=null'> ",
" AND ea.first_id = #{firstId} ",
" </when> ",
" <when test='secondId!=null'> ",
" AND ea.second_id = #{secondId} ",
" </when> ",
" <when test='threeId!=null'> ",
" AND ea.three_id = #{threeId} ",
" </when> ",
" <when test='startDate!=null'> ",
" AND ea.end_date > #{startDate} ",
" </when> ",
" <when test='endDate!=null'> ",
" AND ea.end_date < #{endDate} ",
" </when> ",
" AND c.id = com.company_id " +
" AND mu.com_id = c.id " +
" AND mu.id = eui.user_id " +
" AND eui.page_display_flag = 1 " +
" AND ea.user_info_id = eui.id " +
" AND ea.end_date > DATE_FORMAT( now( ), '%Y-%m-%d' ) " +
" AND mu.del_flag = 0 " +
" AND ea.del_flag = 0 " +
" AND eui.del_flag = 0 " +
" AND c.del_flag = 0 " +
" AND com.del_flag = 0 " +
" GROUP BY eui.id " +
" ORDER BY " +
" eui.update_date DESC " +
" </script> "})
List<TalentsResultVo> selectAllTalentsByParams(@Param("firstId") String firstId, @Param("secondId") String secondId, @Param("threeId") String threeId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("searchStr") String searchStr);
循环
@Select({
" <script> ",
" select ",
" id ,stream_id 'streamId' , project_id 'projectId' ,push_stream_addr 'pushStreamAddr' , rtmp_play_addr 'rtmpPlayAddr' , flv_play_addr 'flvPlayAddr' , hls_play_addr 'hlsPlayAddr' , monitor_state 'monitorState', monitor_name 'monitorName' , note, state_reason 'stateReason' , ip_addr 'ipAddr' ",
" from bi_real_time_monitoring ",
" where project_id in ",
" <foreach collection='projectIds' item='id' open='(' separator=',' close=')'> ",
" #{id} ",
" </foreach> ",
" and delFlag =0 and monitor_state != 2 ",
" </script> "
})
List<BiRealTimeMonitoring> selectBiRealTimeMonitoringByProjectIds(@Param("projectIds") List<String> projectIds);
注意一个报错
mapper @Select()注解开发,使用模板 if 和循环的更多相关文章
- Spring笔记04_AOP注解开发_模板_事务
目录 1. Spring基于AspectJ的注解的AOP开发 1. 1 SpringAOP的注解入门 1.2 Spring的AOP的注解通知类型 1.2.1 @Before:前置通知 1.2.2 @A ...
- Spring---AOP注解开发&jdbc模板&Spring事务管理
一.AOP注解开发 此处需要回忆一遍AOP的概念.简单的来说,AOP就是利用动态代理技术,做到不触动源代码但却扩展了功能.那么就需要一个被扩展的对象和一个“新的功能”,例如说给某类的saveUser方 ...
- Spring_AOP基于AspectJ的注解开发&JDBC的模板使用&事务管理(学习笔记3)
一:AOP基于AspectJ的注解开发 1,简单的实例: 1)引入相应的jar包 2)在配置文件里引入相关约束 <beans xmlns="http://www.springfra ...
- spring boot纯注解开发模板
简介 spring boot纯注解开发模板 创建项目 pom.xml导入所需依赖 点击查看源码 <dependencies> <dependency> <groupId& ...
- Spring入门(三)— AOP注解、jdbc模板、事务
一.AOP注解开发 导入jar包 aop联盟包. aspectJ实现包 . spring-aop-xxx.jar . spring-aspect-xxx.jar 导入约束 aop约束 托管扩展类和被扩 ...
- Mybatis注解开发
mybatis 的常用注解: @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与 @Res ...
- Struts2------拦截器和标签库和注解开发
一.解析Struts2源码中拦截器的执行 客户端请求Action,执行前端控制器,在前端控制器内部创建了Action的代理类,调用代理类的execute方法,在execute方法内部执行ActionI ...
- SpringMVC-Mybatis整合和注解开发
SpringMVC-Mybatis整合和注解开发SpringMVC-Mybatis整合整合的思路在mybatis和spring整合的基础上 添加springmvc.spring要管理springmvc ...
- MyBatis框架之注解开发
MyBatis注解开发 @Insert注解注解属性value:写入SQL语句 @Options注解实现添加新数据的主键封装注解属性useGeneratedKeys:使用生成的主键,配置为truekey ...
随机推荐
- WebSocket 的应用
后面用到了再来做整理 链接地址:https://www.cnblogs.com/zhaof/p/9833614.html
- c#的异步处理思路和vue前端中异步处理思路比较
前语:目前工作在做的项目是前端基于vue的组件式开发,通过api接口调用,后端数据逻辑是一个c#实现的WCF服务 1.总结自己在c# .NET 4.5后的新异步方式 async搭配await来实现 ...
- 通透理解viewport
摘自:https://blog.csdn.net/u014787301/article/details/44466697 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewpor ...
- ECMAScript5面向对象技术(2)--函数
在JavaScript中,函数其实就是对象.使函数不同于其他对象的决定性特点是函数存在一个被称为[[Call]]的内部属性.内部属性无法通过代码访问而是定义了代码执行时的行为.ECMAScript为J ...
- 前端编译原理 parser.js源码解读
前面已经介绍了一个jison的使用,在正常开发中其实已经够用下,下面主要是看了下parser.js代码解读下,作为一些了解. 下面以最简单的文法产生的parser做一些代码注释 下面是一些注释,标示了 ...
- arm9交叉编译工具链
Arm-linux-gcc: gcc和arm-linux-gcc的头文件并不一样. Eg. Arm-linux-ld:链接器,-T参数是使用链接器脚本. Eg. Arm-linux-readelf:读 ...
- 元组和range
元组 只读列表,不支持增 删 改:但是元组里的列表可以增删改 元组其实就是通过逗号(,)设定的,和小括号并没有什么必然的关系,所以当元组只有一个元素的时候,需要在元素后加个逗号 存储大量数据,有序.不 ...
- Android笔记(二十三) Android中的ProgressBar(进度条)
圆形进度条和水平进度条 进度条也是UI界面一种非常实用的组件,通常用于向用户显示某个耗时操作完成的百分比,进度条可以动态的显示进度,避免长时间的执行某个耗时操作时,让用户感觉程序失去了相应,从而更好的 ...
- Linux 本机/异机文件对比
一:提取异步机器文件 #ssh 192.168.1.2 "cat /etc/glance/glance-api.conf | grep -v '#' |grep -v ^$" 二: ...
- Codeforces #496 (Div. 3) Polycarp and Div 3
思路1: https://blog.csdn.net/qq_41730082/article/details/80984316 题目的意思是给你一串数字长度为(1-2e5),当然由于它的这一串数字是不 ...