if

  1. @Select({"<script>",
  2. "SELECT " +
  3. " mu.id userId, " +
  4. " eui.id userInfoId, " +
  5. " mu.user_name userName, " +
  6. " com.company_id AS comId, " +
  7. " com.company_name comName, " +
  8. " eui.talent_type talentType, " +
  9. " eui.self_introduction selfIntroduction, " +
  10. " eui.working_years workingYears, " +
  11. " eui.education education, " +
  12. " mu.icon_url iconUrl " +
  13. " FROM " +
  14. " mky_user mu, " +
  15. " em_company c, " +
  16. " em_company_record com, " +
  17. " em_user_info eui, " +
  18. " em_aptitude_maintain_approve ea " +
  19. " WHERE 1=1 ",
  20. " <when test='searchStr!=null'> ",
  21. " AND ( mu.user_name LIKE #{searchStr} OR com.company_name LIKE #{searchStr} ) ",
  22. " </when> ",
  23. " <when test='firstId!=null'> ",
  24. " AND ea.first_id = #{firstId} ",
  25. " </when> ",
  26. " <when test='secondId!=null'> ",
  27. " AND ea.second_id = #{secondId} ",
  28. " </when> ",
  29. " <when test='threeId!=null'> ",
  30. " AND ea.three_id = #{threeId} ",
  31. " </when> ",
  32. " <when test='startDate!=null'> ",
  33. " AND ea.end_date &gt; #{startDate} ",
  34. " </when> ",
  35. " <when test='endDate!=null'> ",
  36. " AND ea.end_date &lt; #{endDate} ",
  37. " </when> ",
  38. " AND c.id = com.company_id " +
  39. " AND mu.com_id = c.id " +
  40. " AND mu.id = eui.user_id " +
  41. " AND eui.page_display_flag = 1 " +
  42. " AND ea.user_info_id = eui.id " +
  43. " AND ea.end_date &gt; DATE_FORMAT( now( ), '%Y-%m-%d' ) " +
  44. " AND mu.del_flag = 0 " +
  45. " AND ea.del_flag = 0 " +
  46. " AND eui.del_flag = 0 " +
  47. " AND c.del_flag = 0 " +
  48. " AND com.del_flag = 0 " +
  49. " GROUP BY eui.id " +
  50. " ORDER BY " +
  51. " eui.update_date DESC " +
  52. " </script> "})
  53. 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);

循环

  1. @Select({
  2. " <script> ",
  3. " select ",
  4. " 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' ",
  5. " from bi_real_time_monitoring ",
  6. " where project_id in ",
  7. " <foreach collection='projectIds' item='id' open='(' separator=',' close=')'> ",
  8. " #{id} ",
  9. " </foreach> ",
  10. " and delFlag =0 and monitor_state != 2 ",
  11. " </script> "
  12. })
  13. List<BiRealTimeMonitoring> selectBiRealTimeMonitoringByProjectIds(@Param("projectIds") List<String> projectIds);

注意一个报错

注意一个报错

 

mapper @Select()注解开发,使用模板 if 和循环的更多相关文章

  1. Spring笔记04_AOP注解开发_模板_事务

    目录 1. Spring基于AspectJ的注解的AOP开发 1. 1 SpringAOP的注解入门 1.2 Spring的AOP的注解通知类型 1.2.1 @Before:前置通知 1.2.2 @A ...

  2. Spring---AOP注解开发&jdbc模板&Spring事务管理

    一.AOP注解开发 此处需要回忆一遍AOP的概念.简单的来说,AOP就是利用动态代理技术,做到不触动源代码但却扩展了功能.那么就需要一个被扩展的对象和一个“新的功能”,例如说给某类的saveUser方 ...

  3. Spring_AOP基于AspectJ的注解开发&JDBC的模板使用&事务管理(学习笔记3)

    一:AOP基于AspectJ的注解开发 1,简单的实例: 1)引入相应的jar包 ​ 2)在配置文件里引入相关约束 <beans xmlns="http://www.springfra ...

  4. spring boot纯注解开发模板

    简介 spring boot纯注解开发模板 创建项目 pom.xml导入所需依赖 点击查看源码 <dependencies> <dependency> <groupId& ...

  5. Spring入门(三)— AOP注解、jdbc模板、事务

    一.AOP注解开发 导入jar包 aop联盟包. aspectJ实现包 . spring-aop-xxx.jar . spring-aspect-xxx.jar 导入约束 aop约束 托管扩展类和被扩 ...

  6. Mybatis注解开发

    mybatis 的常用注解: @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与 @Res ...

  7. Struts2------拦截器和标签库和注解开发

    一.解析Struts2源码中拦截器的执行 客户端请求Action,执行前端控制器,在前端控制器内部创建了Action的代理类,调用代理类的execute方法,在execute方法内部执行ActionI ...

  8. SpringMVC-Mybatis整合和注解开发

    SpringMVC-Mybatis整合和注解开发SpringMVC-Mybatis整合整合的思路在mybatis和spring整合的基础上 添加springmvc.spring要管理springmvc ...

  9. MyBatis框架之注解开发

    MyBatis注解开发 @Insert注解注解属性value:写入SQL语句 @Options注解实现添加新数据的主键封装注解属性useGeneratedKeys:使用生成的主键,配置为truekey ...

随机推荐

  1. WebSocket 的应用

    后面用到了再来做整理 链接地址:https://www.cnblogs.com/zhaof/p/9833614.html

  2. c#的异步处理思路和vue前端中异步处理思路比较

    前语:目前工作在做的项目是前端基于vue的组件式开发,通过api接口调用,后端数据逻辑是一个c#实现的WCF服务 1.总结自己在c# .NET 4.5后的新异步方式  async搭配await来实现  ...

  3. 通透理解viewport

    摘自:https://blog.csdn.net/u014787301/article/details/44466697 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewpor ...

  4. ECMAScript5面向对象技术(2)--函数

    在JavaScript中,函数其实就是对象.使函数不同于其他对象的决定性特点是函数存在一个被称为[[Call]]的内部属性.内部属性无法通过代码访问而是定义了代码执行时的行为.ECMAScript为J ...

  5. 前端编译原理 parser.js源码解读

    前面已经介绍了一个jison的使用,在正常开发中其实已经够用下,下面主要是看了下parser.js代码解读下,作为一些了解. 下面以最简单的文法产生的parser做一些代码注释 下面是一些注释,标示了 ...

  6. arm9交叉编译工具链

    Arm-linux-gcc: gcc和arm-linux-gcc的头文件并不一样. Eg. Arm-linux-ld:链接器,-T参数是使用链接器脚本. Eg. Arm-linux-readelf:读 ...

  7. 元组和range

    元组 只读列表,不支持增 删 改:但是元组里的列表可以增删改 元组其实就是通过逗号(,)设定的,和小括号并没有什么必然的关系,所以当元组只有一个元素的时候,需要在元素后加个逗号 存储大量数据,有序.不 ...

  8. Android笔记(二十三) Android中的ProgressBar(进度条)

    圆形进度条和水平进度条 进度条也是UI界面一种非常实用的组件,通常用于向用户显示某个耗时操作完成的百分比,进度条可以动态的显示进度,避免长时间的执行某个耗时操作时,让用户感觉程序失去了相应,从而更好的 ...

  9. Linux 本机/异机文件对比

    一:提取异步机器文件 #ssh 192.168.1.2 "cat /etc/glance/glance-api.conf | grep -v '#' |grep -v ^$" 二: ...

  10. Codeforces #496 (Div. 3) Polycarp and Div 3

    思路1: https://blog.csdn.net/qq_41730082/article/details/80984316 题目的意思是给你一串数字长度为(1-2e5),当然由于它的这一串数字是不 ...