SpringBoot MybatisPlus selectOne的坑

目录

一、问题

二、问题解决

三、其他方法


一、问题

selectOne在查询多条数据时会报错,查询语句并不会加 limit 1。

One record is expected, but the query result is multiple records。

二、问题解决

在QueryWrapper上添加如下:

QueryWrapper<T> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(SysTenant.COL_USERNAME, username)
                .or().eq(SysTenant.COL_PHONE, username)
                .or().eq(SysTenant.COL_EMAIL, username)
                .last("limit 1");
        return mapper.selectOne(queryWrapper);

这样不但查询时会只查一条提升性能,selectOne也不再报错。

三、其他方法

 //查询到多条数据的情况下只取第一条
 FileDto fileDto = fileMapper.selectOne(queryWrapper);//这个报异常
   
 
 FileDto fileDto1 = getOne(queryWrapper, false);//不抛出异常,从多个结果去一条并记录日志

产生原因:

使用selectOne方法查询数据库,在数据中发现多条数据,然后出现报错。

解决:替换IServer中的getOne方法,

getOne(queryWrapper,Boolean)

Boolean

true :抛出异常

false:不抛出异常,从多个结果中取一条并记录日志即可。

总结到此!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是基于Spring框架的快速开发脚手架,MybatisPlus 是Mybatis的增强工具,在Spring Boot中使用MybatisPlus可以极大提高开发效率。下面是Spring Boot整合MybatisPlus的基本步骤。 1. 引入 MybatisPlus 依赖 在 pom.xml 文件中添加 MybatisPlus 的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>latest version</version> </dependency> ``` 2. 配置数据源 在 application.properties 文件中配置数据源信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driverClassName=com.mysql.jdbc.Driver ``` 3. 配置 MybatisPlus 在 Spring Boot 启动类上加上注解 @MapperScan,指定 Mapper 接口的扫描包路径: ```java @SpringBootApplication @MapperScan("com.example.demo.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 4. 创建实体类和 Mapper 接口 创建实体类和 Mapper 接口,例如: ```java @Data public class User { private Integer id; private String name; private Integer age; } @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 5. 使用 MybatisPlus 进行 CRUD 操作 在 Service 层中注入 UserMapper,即可使用 MybatisPlus 提供的基础方法进行 CRUD 操作,例如: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getById(Integer id) { return userMapper.selectById(id); } @Override public List<User> getAll() { return userMapper.selectList(null); } @Override public void save(User user) { userMapper.insert(user); } @Override public void update(User user) { userMapper.updateById(user); } @Override public void delete(Integer id) { userMapper.deleteById(id); } } ``` 以上就是 Spring Boot 整合 MybatisPlus 的基本步骤,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值