目录
前言
在开发过程中,有时会遇到一个奇怪的问题:使用 MyBatis-Plus 查询不到数据,而直接执行 SQL 查询却能够获取到数据。这种情况可能会让人感到困惑,这篇博客将详细介绍如何排查和解决这个问题。
一、问题描述
当我们在使用MyBatis-Plus进行查询时,明明知道数据库中存在满足条件的数据,但查询结果却为空。与此同时,使用相同的查询条件直接在数据库中执行SQL语句,却能成功获取数据。这种情况的出现,让我们对MyBatis-Plus的查询功能产生了疑惑。
示例代码
// 使用MyBatis-Plus的查询方法 List<User> users = userMapper.selectList(null);
System.out.println(users); // 输出为空列表
而在数据库客户端执行以下 SQL 语句可以正确返回数据:
SELECT * FROM user;
二、排查步骤
1. 检查数据源配置
首先,确保 MyBatis-Plus 的数据源配置正确。检查 application.yml
或 application.properties
文件中的数据库连接配置是否与实际使用的数据库相符。
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database_n