Mybatis-plus selectByMap条件查询方式

目录
  • selectByMap条件查询
  • selectMaps方法返回值字段为空不显示问题
    • 1.application.yaml设置mybayisPlus
    • 2.添加call-setters-on-nulls: true之后

selectByMap条件查询

List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);

如上,可以看到BaseMapper中的selectByMap接口需要的参数是Map<String ,Object>,故

Map<String, Object> map=new HashMap<>();
map.put("列名1",约束1);//条件1
map.put("列名2",约束2);//条件2
xxxMapper.selectByMap(map);

相当于sql语句SELECT * FROM 表名 WHERE 列名1= ? AND 列名2= ?

selectMaps方法返回值字段为空不显示问题

1.application.yaml设置mybayisPlus

没加call-setters-on-nulls: true之前

mybatis-plus:
  mapper-locations: classpath*:/mapper/**Mapper.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.vkl.booking.persistence.entity
  configuration.cache-enabled: false
  global-config.db-config.db-type: mysql
  configuration.jdbc-type-for-null: null

调用mybatisPlus的selectMaps方法。好处:如果返回类型某个对象缺少字段,这里可以自定义要返回的字段。

public Message test(){
        List<Map<String, Object>> mapList = cLibraryMapper.selectMaps(new LambdaQueryWrapper<CompanyBookingLibrary>());
        for(Map<String,Object> map :mapList){
            /*自定义添加自己想要的字段*/
            map.put("test","1");
        }
        return Message.object(mapList);
    }

请求结果:

2.添加call-setters-on-nulls: true之后

mybatis-plus:
  mapper-locations: classpath*:/mapper/**Mapper.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.vkl.booking.persistence.entity
  configuration.cache-enabled: false
  global-config.db-config.db-type: mysql
  configuration.jdbc-type-for-null: null
  configuration:
    call-setters-on-nulls: true

返回结果:

为空的字段也返回出来了,大功告成!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis-Plus中的selectByMap使用实例

    前言: 我在开始用Mybatis-Plus来对数据库进行增删改查时,将里面的函数试了个遍,接下来我就将使用selectByMap函数的简单测试实例写出来,方便没有使用过的朋友们快速上手 正文: 首先我们要使用这个selectByMap函数,需要在我们的Mapper中继承mybatis-plus包中相应的接口 package com.example.library.Mapper; import com.example.library.entity.bookBorrowing; import com

  • Mybatis Plus select 实现只查询部分字段

    目录 Mybatis Plus select 查询部分字段 select 设置查询字段 MyBatis-Plus之select.delete 一.Mybatis-Plus之查询操作 1.查询操作常用API 2.分页查询 二.Mybatis-Plus之删除操作 1.物理删除操作常用API 2.逻辑删除 Mybatis Plus select 查询部分字段 Mybatis Plus select语句默认查询所有字段,如需要指定字段查询,则需使用 QueryWrapper的select方法. sele

  • 详解MyBatis-Plus Wrapper条件构造器查询大全

    一.引言 那么那么那么今天来说下MP中强大的条件查询功能. 本章是基于上个案例来讲的:MyBaits-Plus 快速入门案例 二.具体操作 首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询. /** * 通过单个ID主键进行查询 */ @Test public void selectById() { User user = userMapper.selectById(1094592041087729666L); System.out.println(user); } /** * 通过多

  • Mybatis-plus selectByMap条件查询方式

    目录 selectByMap条件查询 selectMaps方法返回值字段为空不显示问题 1.application.yaml设置mybayisPlus 2.添加call-setters-on-nulls: true之后 selectByMap条件查询 List<T> selectByMap(@Param("cm") Map<String, Object> columnMap); 如上,可以看到BaseMapper中的selectByMap接口需要的参数是Map&

  • mybatis中的count()按条件查询方式

    目录 mybatis count()按条件查询 1.sql count()函数 2.mybatis中count()按条件查询 在查询时使用count(*),total为1,结果为0 mybatis count()按条件查询 1.sql count()函数 count()函数返回匹配指定条件的行数. sql count(column_name)语法: count(column_name)函数返回指定列的值的数目(null)不计入. select count(column_name) from ta

  • MyBatis中多条件查询商品的三种方法及区别

    目录 一.Sql语句设置多个参数有几种方式 二.代码附上 一.Sql语句设置多个参数有几种方式 1.散装参数:需要使用@Param标记Sql语句中占位符处的名称例如 #{name} 2.实体类封装参数 只需要保证Sql中的参数名和实体类属性名对应上,即可设置成功BrandMapper.xml中的SQL语句不用动,把TestBrandMapper中的代码修改即可 3.Map集合 只需要保证Sql中的参数名和Map集合的键的名称对应上,即可设置成功.BrandMapper.xml中Sql语句不用改

  • mybatis collection 多条件查询的实现方法

    mybatis collection 多条件查询的实现方法 前言: 业务需要通过mybatis 查询返回嵌套集合,嫌多次查询太麻烦,用自带的高级查询解决问题,下边是代码,已测试通过. 说下自己的理解,就是一个主查询结果集里面嵌套了子查询的结果集,可以是多个子查询,每个子查询的条件从主查询结果集中获取,返回值各自定义.collection 标签的property是主查询里面集合的名字,如果有多个就再写个collection,column是子查询参数,单参数直接写主查询结合返回结果,例如直接写上us

  • Mybatis中的Criteria条件查询方式

    Mybatis Criteria条件查询 Criterion Criterion是最基本,最底层的Where条件,用于字段级的筛选. Criteria Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系. 其它 Example类的distinct字段用于指定DISTINCT查询. orderByClause字段用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定. 代码示例 import

  • Mybatis传参为逗号分隔的字符串情形进行in条件查询方式

    目录 传参为逗号分隔的字符串情形进行in条件查询 后端只需要做如下调整 根据逗号分隔的id查询 传参为逗号分隔的字符串情形进行in条件查询 在业务变更需支持多条件查询,在改动最小的情况下,实现方式就是只改mapper.xml,这时,可让前端逗号分隔传参 后端只需要做如下调整 <if test="paramXXX!= null and paramXXX!= ''">   and t.paramXXX in     <foreach item="item&quo

  • mybatis plus实现条件查询

    目录 一.wapper介绍 二.常用的条件方法 1. gt 表示 > 2. le 表示 <= 3. lt 表示 < 4. isNull 表示 查询值为null 5. isNotNull 表示 查询值为不为null 6. eq 表示 = 7. ne 表示 != 8. between 表示 在范围之间,包含边界值 9. notBetween 表示 在范围之外,不含边界值 10. notBetween 表示 在范围之外,不含边界值 11. allEq 多条件查询 12. .链式编程,多条件查询

  • Mybatis和Mybatis-Plus时间范围查询方式

    一.mysql 1.传入时间范围参数类型是字符串 <if test="startTime!=null and startTime.trim() neq ''"> and date_format(create_time,'%Y-%m-%d %H:%i:%s') >= str_to_date(#{startTime},'%Y-%m-%d %H:%i:%s') </if> <if test="endTime!=null and endTime.t

  • mybatis 使用concat 模糊查询方式

    目录 使用concat 模糊查询 本举例 注意 模糊查询使用concat('%',#{str},'%')出错 使用concat 模糊查询 <select id="queryByKeyWord" resultType="com.mingdutech.xelerator.eln.dto.ApparatusDto"> select distinct b.* from base_apparatus b left join base_apparatus_colum

  • Mybatis中使用in()查询的方式详解

    目录 1 使用数组方式 2 使用List集合的方式 3 第三种我们使用Mybatis-plus框架的条件构造器来进行查询 附:Mybatis-plus的条件构造器详细使用教程 总结 这篇文章我会演示几种mybatis中使用in查询的方式. 1 数组.字符串 2 集合 3 使用Myabtis-plus框架的条件构造器来实现 我们在mysql中使用in查询的方式是这样的 那在mybatis中我们使用<foreach>标签来实现包含查询 1 使用数组方式 Mapper: Mapper.xml: &l

随机推荐