如果使用MyBatis注解方式写sql,又想要XML写法的判断入参拼接条件,可以通过@SelectProvider方式实现。

新建Provider

public class RateProvider {

private final String table_name = "rate_finish";

public String getFinishRate(Map para) {

String sql = "SELECT homework_type,device_type,`level`,finish_count,count,create_at FROM rate_finish ";

sql += "WHERE 1=1 ";

if (para.get("deviceType") != null && !StringUtils.isEmpty(para.get("deviceType").toString())) {

sql += "AND device_type = '" + para.get("deviceType").toString() + "' ";

}

if (para.get("homeworkType") != null && !StringUtils.isEmpty(para.get("homeworkType").toString())) {

sql += "AND homework_type = '" + para.get("homeworkType").toString() + "' ";

}

if (para.get("date") != null && !StringUtils.isEmpty(para.get("date").toString())) {

sql += "AND create_at = '" + para.get("date").toString() + "' ";

}

sql += "ORDER BY homework_type,device_type,`level`";

return sql;

}

}

这里的para会包含6个值,也就是2倍的入参参数,可以通过key方式或者index方式获取对应参数。

新建Entity

public class RateFinish extends AbstractModel {

private int id;

private String deviceType;

private String level;

private String finishCount;

private String count;

private String homeworkType;

private String createAt;

编写Mapper方法

@SelectProvider(type = RateProvider.class, method = "getFinishRate")

@Results({

@Result(property = "homeworkType", column = "homework_type"),

@Result(property = "deviceType", column = "device_type"),

@Result(property = "level", column = "level"),

@Result(property = "finishCount", column = "finish_count"),

@Result(property = "count", column = "count"),

@Result(property = "createAt", column = "create_at")

})

List getFinishRate(

@Param("deviceType") String deviceType,

@Param("homeworkType") String homeworkType,

@Param("date") String date);

selectprovider 分页_MyBatis使用@SelectProvider拼接sql语句相关推荐

  1. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO/****** Object: StoredProcedure [dbo].[Common_PageList] Script ...

  2. python sql拼接_python 字典 拼接SQL语句

    def gen_sql(table_name, data): """ :param table_name: 表名称 :param data: 字典对象 key为字段(要与 ...

  3. win32汇编实现拼接SQL语句

    字符串合并,在汇编语言,一般是用loop循环和cx寄存器,自己编程实现: 如果是win32汇编,可以使用movsb指令: 一般开发应用程序都会碰到拼接SQL语句,在C#这些语言用字符串连接的加号就可以 ...

  4. 【NCRE】---拼接SQL语句(Case....When语句)

    开发到了这个紧要关头,功能基本都已经完成,剩下来的就是需要解决软件的性能问题!     我们一开始设计的时候是:每一个得分点都判断一次,并将考生答案和考生得到的分数update到数据库中,也就是每判一 ...

  5. java拼接sql语句的in条件

    1.问题 java拼接sql语句的in条件,需要将列表或数组转换为(" "," ")的格式 2.代码 StringBuffer sbuffer= new Str ...

  6. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)

    [一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...

  7. oracle数据库拼接sql语句字符串问题

    近日遇到一个问题,在使用存储过程拼接动态语句时,传输参数一直提示无效标识符,研究发现拼接sql语句的时候,作为字符串参数的变量要加' ',具体代码如下: declarevc_sql varchar2( ...

  8. java sql特殊字符处理_java用字符串拼接SQL语句的特殊字符转义问题

    在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询.如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入.比如 ...

  9. 关于Excel拼接sql语句,批量导入数据

    需求: 当我们需要把Excel中的数据(成百上千.成千上万条-)全部导入到数据库中,一条条写sql语句明显不理智,于是我们可以使用excel函数拼接sql语句,然后往下拉的方式自动拼接所有sql,批量 ...

最新文章

  1. 孪生网络图像相似度_生成对抗网络的进步多大,请看此文
  2. 实战派:一次kafka卡顿事故排查过程!
  3. Eclipse安装 Activiti Designer插件
  4. 2021的第一封拒信来自2021年年度青年活动家本科生奖!
  5. CPP第四版第五章:位操作符、sizeof及部分编程习题
  6. python自动提交网页表单_python自动提交表单数据库
  7. JS factory
  8. rabbitmq消息确认机制及死信队列的使用
  9. js alert 封装 layui
  10. ❤️20行Python代码❤️一键整理桌面、文件夹❤️世界都清净了❤️
  11. ios沙盒查找图片展示
  12. 基于STM32的嵌入式语音识别模块设计实现
  13. 嵌入式ubuntu14.04开发环境搭建(详细图解)
  14. Atitit 给投资人的回报 目录 1.1. 经济回报(略) 1 2. 精神文化与学术回报 1 2.1. 提升自我 投资人可以在我们的教育体系提升自我学术水平 1 2.2. 对自己感兴趣的学术领
  15. 拳王公社:网络操盘手必备的400款新媒体运营工具大全!
  16. ASP.NET(C#版) FileUpload控件
  17. java计算机毕业设计ssm拼团旅游系统element 前后端分离
  18. python安装gensim_python gensim
  19. Vue中的视频播放插件( vue-video-player )
  20. dell灵越笔记本后盖怎么拆_戴尔灵越5584笔记本按键拆卸、安装教程

热门文章

  1. transition的唧唧歪歪
  2. 00001-整数倒置-Java-leetcode-要考虑到溢出问题
  3. C++学习——C++中的四种类型转换
  4. LeetCode LCP 06. 拿硬币
  5. 学习《图解HTTP》有感
  6. Leetcode--394. 字符串解码(Java)
  7. 码元,波特,速率,带宽
  8. java 线程变量put_Java线程(篇外篇):线程本地变量ThreadLocal
  9. java that关键字_Java中this关键字的几种用法
  10. 记录用户转成超级用户的文件名字_一分钟了解Linux用户