selectprovider 分页_MyBatis使用@SelectProvider拼接sql语句
如果使用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语句相关推荐
- SQL存储过程分页(通用的拼接SQL语句思路实现)
多表通用的SQL存储过程分页 案例一: USE [Community] GO/****** Object: StoredProcedure [dbo].[Common_PageList] Script ...
- python sql拼接_python 字典 拼接SQL语句
def gen_sql(table_name, data): """ :param table_name: 表名称 :param data: 字典对象 key为字段(要与 ...
- win32汇编实现拼接SQL语句
字符串合并,在汇编语言,一般是用loop循环和cx寄存器,自己编程实现: 如果是win32汇编,可以使用movsb指令: 一般开发应用程序都会碰到拼接SQL语句,在C#这些语言用字符串连接的加号就可以 ...
- 【NCRE】---拼接SQL语句(Case....When语句)
开发到了这个紧要关头,功能基本都已经完成,剩下来的就是需要解决软件的性能问题! 我们一开始设计的时候是:每一个得分点都判断一次,并将考生答案和考生得到的分数update到数据库中,也就是每判一 ...
- java拼接sql语句的in条件
1.问题 java拼接sql语句的in条件,需要将列表或数组转换为(" "," ")的格式 2.代码 StringBuffer sbuffer= new Str ...
- Mybatis最入门---分页查询(逻辑分页与SQL语句分页)
[一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...
- oracle数据库拼接sql语句字符串问题
近日遇到一个问题,在使用存储过程拼接动态语句时,传输参数一直提示无效标识符,研究发现拼接sql语句的时候,作为字符串参数的变量要加' ',具体代码如下: declarevc_sql varchar2( ...
- java sql特殊字符处理_java用字符串拼接SQL语句的特殊字符转义问题
在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询.如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入.比如 ...
- 关于Excel拼接sql语句,批量导入数据
需求: 当我们需要把Excel中的数据(成百上千.成千上万条-)全部导入到数据库中,一条条写sql语句明显不理智,于是我们可以使用excel函数拼接sql语句,然后往下拉的方式自动拼接所有sql,批量 ...
最新文章
- 孪生网络图像相似度_生成对抗网络的进步多大,请看此文
- 实战派:一次kafka卡顿事故排查过程!
- Eclipse安装 Activiti Designer插件
- 2021的第一封拒信来自2021年年度青年活动家本科生奖!
- CPP第四版第五章:位操作符、sizeof及部分编程习题
- python自动提交网页表单_python自动提交表单数据库
- JS factory
- rabbitmq消息确认机制及死信队列的使用
- js alert 封装 layui
- ❤️20行Python代码❤️一键整理桌面、文件夹❤️世界都清净了❤️
- ios沙盒查找图片展示
- 基于STM32的嵌入式语音识别模块设计实现
- 嵌入式ubuntu14.04开发环境搭建(详细图解)
- Atitit 给投资人的回报 目录 1.1. 经济回报(略)	1 2. 精神文化与学术回报	1 2.1. 提升自我 投资人可以在我们的教育体系提升自我学术水平	1 2.2. 对自己感兴趣的学术领
- 拳王公社:网络操盘手必备的400款新媒体运营工具大全!
- ASP.NET(C#版) FileUpload控件
- java计算机毕业设计ssm拼团旅游系统element 前后端分离
- python安装gensim_python gensim
- Vue中的视频播放插件( vue-video-player )
- dell灵越笔记本后盖怎么拆_戴尔灵越5584笔记本按键拆卸、安装教程
热门文章
- transition的唧唧歪歪
- 00001-整数倒置-Java-leetcode-要考虑到溢出问题
- C++学习——C++中的四种类型转换
- LeetCode LCP 06. 拿硬币
- 学习《图解HTTP》有感
- Leetcode--394. 字符串解码(Java)
- 码元,波特,速率,带宽
- java 线程变量put_Java线程(篇外篇):线程本地变量ThreadLocal
- java that关键字_Java中this关键字的几种用法
- 记录用户转成超级用户的文件名字_一分钟了解Linux用户