MyBatisPlus 查询selectOne方法 您所在的位置:网站首页 mybe什么意思 MyBatisPlus 查询selectOne方法

MyBatisPlus 查询selectOne方法

2023-08-06 20:01| 来源: 网络整理| 查看: 265

一次偶然间遇到的一个问题,MyBatisPlus 自带selectOne代码中查询出来了一条数据,但是在数据库中查出来了多条数据,而代码中也没有报错!好奇之下看了源码才恍然大悟。

public SysFileTemplate findPathByTableName(String tableName) { EntityWrapper wrapper = new EntityWrapper(); wrapper.eq("table_name", tableName); wrapper.ne("status", BizCode.Status.DELETE); SysFileTemplate selectOne = selectOne(wrapper); return selectOne; }

以下是mybatisPlus的源码,可以看出selectOne方法也是调用了selectList方法。在看getObject方法,如果selectList方法获取的值大于1时,只是发出一个警告消息 Warn: execute Method There are 2 results.,之后取第一条消息返回去,所以selectOne方法得到的就是一条消息(null值除外)

@Override public T selectOne(Wrapper wrapper) { return SqlHelper.getObject(baseMapper.selectList(wrapper)); } /** *

* 从list中取第一条数据返回对应List中泛型的单个结果 *

* * @param list * @param * @return */ public static E getObject(List list) { if (CollectionUtils.isNotEmpty(list)) { int size = list.size(); if (size > 1) { logger.warn(String.format("Warn: execute Method There are %s results.", size)); } return list.get(0); } return null; }

特别注意: 1、如果需要将selectOne的返回值传递进行操作的话,必须考虑可能的返回null的情况,否则程序就会异常。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有