精华内容
下载资源
问答
  • Mybatis 自定义排序

    2019-12-22 18:40:30
    入参javaBean import lombok.Data; import java.io.Serializable; import java.util.List; ​ @Data public class UserReq implements Serializable { private Long id; private String username;... privat...

    入参javaBean

    import lombok.Data;
    import java.io.Serializable;
    import java.util.List;
    ​
    @Data
    public class UserReq implements Serializable {
        private Long id;
        private String username;
        private String password;
        private List<OrderFiled> orderFields;
    }
    ​
    import lombok.Data;
    import java.io.Serializable;
    @Data
    public class OrderFiled implements Serializable {
        private String orderField;
        private String orderType;
    }

     

    Dao

    public interface UserMapper {
        List<User> getAllByOrderFiled(UserReq userReq);
    }

     

    xml

        <select id="getAllByOrderFiled" parameterType="com.springboot.req.UserReq" resultMap="baseResultMap">
            select id, username, password from user
            <if test="orderFields !=null and orderFields.size() > 0 ">
                order by
                <foreach item="item" index="index" collection="orderFields" separator=",">
                    ${item.orderField} ${item.orderType}
                </foreach>
            </if>
        </select>

     

    接口调用示例

        @Test
        public void getAllByOrderFiledTest(){
            UserReq userReq = new UserReq();
            List<OrderFiled> orderFileds = new ArrayList<>();
            OrderFiled filed = new OrderFiled();
            filed.setOrderField("username");
            filed.setOrderType("desc");
            orderFileds.add(filed);
            filed = new OrderFiled();
            filed.setOrderField("password");
            filed.setOrderType("ASC");
            orderFileds.add(filed);
            userReq.setOrderFields(orderFileds);
    ​
            List<User> users = userMapper.getAllByOrderFiled(userReq);
        }

     

    展开全文
  • Mybatis自定义排序详解CASE WHEN

    千次阅读 2020-10-28 20:04:18
    实现方式2:自定义排序字段后排序 需求提升,大展身手 简单排序例子 我们现在有学生数据 简单查询排序按照分数的升序排列 需求提升,小试牛刀 但是我们现在有一个需求,把分数分为3个等级...

    简单排序例子

    需求提升,小试牛刀 

    函数说明 

    实现方式1:直接排序

    实现方式2:自定义排序字段后排序

    需求提升,大展身手


     

    简单排序例子

    我们现在有学生数据

    简单查询排序按照分数的升序排列

    需求提升,小试牛刀 

    但是我们现在有一个需求,把分数分为3个等级,

    • 优秀(80分以上)
    • 合格【60-80】
    • 不合格(60分一以下)

    要求排序的顺序是:优秀--合格--不合格,同等级的再按照分数的升序排序

    根据我们的数据,一共有5个分数(40,49,60,89,98),按照以上的排序需求,正确的排序后的结果顺序应该为(89,98,60,40,49)

    看到这个(89,98,60,40,49),懵了,这完全没有规律可言,这就需要我们的自定义排序了,也就是我们这篇文章的主题

    函数说明 

    CASE

    WHEN 条件1 THEN  返回结果1

    WHEN 条件2 THEN 返回结果2

    ELSE  返回结果3

    END 正序还是倒序

    CASE 表示函数开始

    END 表示函数结束

    如果 条件1 成立,则返回 返回结果1, 如果 条件2 成立,则返回 返回结果2,当全部不成立则返回ELSE后面的返回结果3,而当有一个成立之后,后面的就不执行了。

    实现方式1:直接排序

    实现方式2:自定义排序字段后排序

    需求提升,大展身手

    现在我们的需求提升了,分数还是分为3个等级,

    • 优秀(80分以上)
    • 合格【60-80】
    • 不合格(60分一以下)

    要求排序的顺序是:优秀--合格--不合格,但是要求优秀的级别内按降序排序,其他按升序排序,那所期望的结果就变为(98,89,60,40,49)

    上面实现方式2中实现了所有的级别内都是统一升序或者降序排序,那么要满足我们现在的需求,那就再改造一下

    展开全文
  • mybatis自定义排序规则

    千次阅读 2019-09-24 08:59:32
    order BY CASE r.`status` when 2 THEN 1 end desc

    order BY CASE r.`status`
    when 2 THEN 1
    end desc

    展开全文
  • mybatis自定义排序 order by case when

    千次阅读 2019-10-29 15:26:17
    以衣服尺码为例 <?xml version="1.0" encoding="UTF-8"?...DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="co...

    以衣服尺码为例

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.benefm.mapper.ProductMapper">
       <select id="findAllProduct" resultMap="productMap">
    		select p.id as id,p.create_time as create_time, p.name as name,p.price as price,p.cover_pic as cover_pic, p.product_pic as product_pic, p.type as type,p1.name as productSizeName ,p1.stock_amount as stock_amount,p1.sales_amount as sales_amount,p1.id as productSizeId,p1.create_time as p_create_time,p1.product_id as product_id from  product p left
          join product_size p1 on p.id=p1.product_id  order by 
         case when p1.name='M' then 0
          when p1.name='L' then 1
          when p1.name='XL' then 2
          when p1.name='XXL' then 3
          when p1.name='XXXL' then 4
          when p1.name='XXXXL' then 5
          end ASC  limit ${(page-1)*pageSize},${pageSize};
    	</select>
    
    	<resultMap id="productMap" type="com.benefm.entity.Product">
    		<result property="id" column="id"/>
            <result property="name" column="name"/>
    		<result property="type" column="type"/>
    		<result property="cover_pic" column="cover_pic"/>
    		<result property="product_pic" column="product_pic"/>
    		<result property="price" column="price"/>
    		<result property="create_time" column="create_time"/>
    		<collection property="productSizeList" ofType="com.benefm.entity.ProductSize">
    			<result property="id" column="productSizeId"/>
    			<result property="name" column="productSizeName"/>
    			<result property="product_id" column="product_id"/>
    			<result property="stock_amount" column="stock_amount"/>
    			<result property="sales_amount" column="sales_amount"/>
    			<result property="create_time" column="p_create_time"/>
    		</collection>
    	</resultMap>
    	</mapper>
    
    展开全文
  • mybatis自定义传参排序

    千次阅读 2019-04-24 15:18:10
    mybatis自定义传参排序 注意事项: 1. 注意事项: 1. “名字” 名字必须跟对应的mapper的方法名一致".参数类型也要一致!> 以下是对应的mapper方法名 <!--工单列表展示--> < select id = " ...
  • 根据查询列表,条件中可以自定义排序字段和acs desc 2、实现 queryParam public class XxxQueryCondition extends BaseQueryParam { private String name; private Integer status; private Integer level; } /**...
  • Mybatis 自定义自动分页 1.JDBCToMyBatisUtils.java package com.util.query; import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import org....
  • 目的: 记录数据库表与实体对象之间不同的映射关系如何用mybatis自定义sql和结果返回集处理。 1、三种对象映射关系 1.1 一对一 一个人对应一个身份证,一位同学对应一个班级,每个房间都有自己的房间号,当一个...
  • Mybatis自定义插件生成雪花ID做为主键项目 先附上项目项目GitHub地址 spring-boot-mybatis-interceptor 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫。 1、Mybatis框架---Mybatis插件原理 2、...
  • Mybatis自定义插件生成雪花ID做为主键项目 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫。 1、 2、 该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用。 一、项目概述 1、项目...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,658
精华内容 4,263
关键字:

mybatis自定义排序