MybatisPlus自带的queryWrapper实现时间倒序方式
目录
- MybatisPlus自带queryWrapper时间倒序
- 使用queryWrapper解决字符串中含数字的排序问题
- 造成的原因
- 解决办法
MybatisPlus自带queryWrapper时间倒序
queryWrapper.select().orderByDesc("create_time");
使用queryWrapper解决字符串中含数字的排序问题
今天遇到了Oracle数据库字符串(含数字)排序问题,这里记录的是如何用MyBatis-Plus的queryWrapper条件构造器来解决的方法。
造成的原因
- 数据库字段为varchar类型(若为Number类型则无此问题)
- 数据库字符串排序是按照顺序一位一位比较的,按照ascII码值比较。如:2比1大,所以12会排在2前面
解决办法
先按字符串长度排序,再按字段排序
关键代码(queryWrapper条件构造器实现形式)
//利用数据库length函数获取字符串长度(这里的code是我数据库中的字段名称) queryWrapper.orderByAsc("length(code),code");
能这样写的原因是因为mybatis-plus的orderBy里的参数值最终是拼接在sql语句的order by后面的,并不是只能设置为数据库的列名称,因此只需使orderBy方法里面的参数值符合sql中的排序规则即可实现想要的排序结果。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
mybatis-plus QueryWrapper自定义查询条件的实现
mybatis-plus框架功能很强大,把很多功能都集成了,比如自动生成代码结构,mybatis crud封装,分页,动态数据源等等,附上官网链接https://mp.baomidou.com/,github上有代码例子,国内小伙伴推荐码云https://gitee.com/baomidou/mybatis-plus. 但是,其中还是有些小坑,文档也没有涉及的很全面,碰到问题,百度或者发issue,能力强的还是直接看源码好,一切答案都在源码中. 版本推荐用3.1.0,3.1.1及以上版本有bu
-
MybatisPlus使用queryWrapper如何实现复杂查询
目录 使用queryWrapper实现复杂查询 自定义的queryWrapper实现查询 声明提要 核心代码 使用queryWrapper实现复杂查询 // mp实现负责查询操作 @Test public void testSelectQuery(){ //1,创建QueryWrapper对象 QueryWrapper<User> wrapper = new QueryWrapper<>(); // 2,通过QueryWrapper设置条件 // ge大于等于 gt大于 le小于等
-
Mybatis-Plus根据时间段去查询数据的实现示例
业务需求:在前端界面选择开始时间.结束时间,后台根据拿到的开始.结束时间去数据库中查询该段时间的数据集返回给前端界面. 1.前端我使用的是elementUI和vue框架,最好是在前端界面进行一个简单的校验规则,对比一下开始时间和结束时间的大小,校验的代码很简单,直接在触发查询按钮的函数前面加入校验即可.代码如下: if(this.StafPsnClctDetlDFormQuery.startTime >= this.StafPsnClctDetlDFormQuery.endTime){ this
-
Mybatis Plus QueryWrapper复合用法详解
目录 QueryWrapper复合用法 使用QueryWrapper小结 mybatisplus自定义分页查询 其中ew.customSqlSegment QueryWrapper 设置参数几种格式 有关queryWrapper使用or条件时 QueryWrapper复合用法 Mybatis Plus作为一个强大的msql插件,简化了DAO许多操作,使得我们的代码看上去更加优雅一些: 这里主要记录一下QueryWrapper的复杂查询用法 LambdaQueryWrapper<T> query
-
MybatisPlus自带的queryWrapper实现时间倒序方式
目录 MybatisPlus自带queryWrapper时间倒序 使用queryWrapper解决字符串中含数字的排序问题 造成的原因 解决办法 MybatisPlus自带queryWrapper时间倒序 queryWrapper.select().orderByDesc("create_time"); 使用queryWrapper解决字符串中含数字的排序问题 今天遇到了Oracle数据库字符串(含数字)排序问题,这里记录的是如何用MyBatis-Plus的queryWrapper条件
-
mybatis-plus自带QueryWrapper自定义sql实现复杂查询实例详解
目录 常用写法 自定义sql 补充: 查询条件中使用函数apply 补充: 末尾sql追加last 补充:排序 补充:Mybatis-Plus QueryWrapper +sql自定义查询 总结 常用写法 xxxDO=实体类, 相当于: select name, id from xxx group by name where delete_flag = 0 and status = 0 LambdaQueryWrapper<xxxDO> queryWrapper = Wrappers.lamb
-
MyBatis-Plus 修改和添加自动填充时间方式
MyBatis-Plus 修改和添加自动填充时间 数据库字段设置: `valid_verify_time` datetime DEFAULT NULL COMMENT '有效性审核时间', 实体类设置: @JsonSerialize:序列化 @JsonDeserialize:反序列化 LocalDateTimeSerializer:JDK时间序列化规则 @ApiModelProperty(value = "有效性审核时间") @TableField(fill = FieldFill.U
-
关于mybatis-plus逻辑删除自动填充更新时间的问题
目录 前言 问题发现 寻找原因 解决方法 方法一 方法二 补充写法 前言 mybatis-plus是对mybatis的增强,mybatis-plus更像是面向对象编程,数据库基本CRUD的操作可以不用手动编写SQL语句,大大提高了开发的效率. mybatis-plus有一个扩展功能:自动填充.此功能常见的应用场景为,插入数据的时候自动添加创建时间.创建人.修改时间.修改人.删除标记.通过实现MetaObjectHandler接口,重写insertFill.updateFill方法,当我们插入和修
-
Mybatis-plus动态条件查询QueryWrapper的使用案例
目录 一.queryWrapper介绍 二.环境搭建 1.创建数据库表并添加几条数据: 2.创建Springboot项目 三.queryWrapper示例 1.案例一:根据name模糊查看未删除的用户列表信息 2.案例二:查看姓李的并且邮箱不为空的用户列表 3.案例三:年龄范围查询(20-30之间的) 4.案例四:根据createTime查看当日的用户列表 5.案例五:查看某个时间段内的用户列表 6.案例六:查询姓李的并且邮箱不为空或者是年龄大于16的用户 7.案例七:查询id为1,2,3的用户
-
springboot中使用mybatisplus自带插件实现分页的示例代码
目录 springboot中使用mybatisplus自带插件实现分页 1.导入mybatisplus分页依赖 2.添加MybatisPlusConfig配置类 3.测试分页 springboot中使用mybatisplus自带插件实现分页 1.导入mybatisplus分页依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifa
-
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
代码如下: import os, glob, time def search_all_files_return_by_time_reversed(path, reverse=True): return sorted(glob.glob(os.path.join(path, '*')), key=lambda x: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getctime(x))), reverse=revers
-
关于使用Mybatisplus自带的selectById和insert方法时的一些问题
一.关于使用Mybatisplus自带的selectById和insert方法时的一些问题 1.selectById的问题 (1).表的主键列名不是id时 查询不到数据,因为Mybatisplus自动生成的sql语句where后面拼接的是where null = ? 这就表示表的主键列名的名字不是id,而Mybatisplus默认的是使用id为主键名的 (2).解决方法 @Id @TableId("commodity_id") @Column("commodity_id&qu
-
ASP调用带参数存储过程的几种方式
ASP调用带参数存储过程的几种方式 选择自 hxfwsk 的 Blog 关键字 存储过程 出处 作者: 讨饭猫 ASP调用带参数存储过程的几种方式 最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法. 1 这也是最简单的方法,两个输入参数,无返回值: set connection = server.createobject("adodb.connection") connection.open someDSN Connection
-
php实现用已经过去多长时间的方式显示时间
本文实例讲述了php用已经过去多长时间的方式显示时间的方法.分享给大家供大家参考.具体如下: 这里以一种可读性比较好的方式显示已经过去多长时间,比如:距离现在10秒,距离现在1天等等. function time_is_older_than($t, $check_time){ $t = strtolower($t); $time_type = substr(preg_replace('/[^a-z]/', '', $t), 0, 1); $val = intval(preg_replace('/
随机推荐
- iOS渐变圆环旋转动画CAShapeLayer CAGradientLayer
- Vue表单验证插件的制作过程
- 总结JavaScript的正则与其他语言的不同之处
- 详解JavaScript操作HTML DOM的基本方式
- Oracle教程 误添加数据文件删除方法
- js读写json文件实例代码
- android开发教程之使用listview显示qq联系人列表
- PHP实现基于mysqli的Model基类完整实例
- C#中的委托、事件学习笔记
- Linux base shell重定向详解
- Jquery实现控件的隐藏和显示实例
- jquery.cookie() 方法的使用(读取、写入、删除)
- JS实现点击登录弹出窗口同时背景色渐变动画效果
- java.net.ConnectException: Connection refused问题解决办法
- Android开发之OkHttpUtils的具体使用方法
- 简单介绍Python中的decode()方法的使用
- PHP新手上路(十)
- 模仿OSO的论坛(三)
- PHP 面向对象 PHP5 中的常量
- 10个步骤Opencv轻松检测出图片中条形码