您的位置:首页 >Mybatisplus查询返回null但条数正确是什么原因?
发布于2026-07-30 阅读(0)
扫一扫,手机访问
在实际开发中,有时会遇到一个奇怪的现象:用 MybatisPlus 查询数据,返回的列表条数是对的,但每个元素都是 null,程序也不报错。先看一段出问题的代码:

1、自定义的 StudentMapper 继承了 BaseMapper 接口:
public interface StudentMapper extends BaseMapper{ }
2、调用 selectList 方法查询数据时,打印结果全都是 null,但条数是对的——比如查出来 5 条,就打印 5 个 null。
代码如下:
@RequestMapping("/testmybatisplus")
@ResponseBody
public void testmybatisplus() {
System.out.println("===1===");
List list=studentMapper.selectList(null);
//Assert.isTrue(5 == list.size(), "");
list.forEach(System.out::println);
}
根本原因在于命名规范不匹配。看看数据库建表语句:
CREATE TABLE student( stu_id VARCHAR(50), stu_name VARCHAR(30), stu_sex VARCHAR(2), stu_age VARCHAR(4), stu_addr VARCHAR(50), stu_pwd VARCHAR(50) )DEFAULT CHARSET=utf8;
MybatisPlus 默认开启了驼峰命名映射,也就是说它会自动将数据库字段 stu_id 映射为 stuId,stu_name 映射为 stuName,以此类推。而对应的 Java Bean 字段却是这样的:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private String stu_id;
private String stu_name;
private String stu_sex;
private String stu_age;
private String stu_addr;
private String stu_pwd;
}
看到了吗?数据库字段是下划线风格,Java 字段也是下划线风格,但 MybatisPlus 默认的驼峰映射却把数据库字段当成驼峰来处理,导致字段名对不上:数据库字段被映射成了 stuId,而 Bean 里是 stu_id,映射自然失败,结果就是每个对象都是 null,但数量统计是正常的。
统一使用驼峰命名法。数据库字段写成 stu_id 没问题,但 Java 字段改成 stuId,加上 @TableId 或 @TableField 注解,或者直接让数据库字段也采用驼峰风格(比如 stuId),这样就能完美匹配。
低级错误偶尔也会犯:检查是否遗漏了 setter/getter 方法或者构造器。如果 Bean 没有正确的 setter,MybatisPlus 反射拿不到赋值入口,结果同样会是 null。使用时注意 Lombok 注解是否生效,或者手动补全方法。
关闭 MybatisPlus 默认的驼峰命名映射。在配置文件中做如下设置:
org.apache.ibatis.logging.stdout.StdOutImpl:用于打印 MybatisPlus 执行的 SQL 语句,方便调试。map-underscore-to-camel-case: false:关闭驼峰命名法,让字段名保持原样映射。mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: false
需要注意的是,如果 Mapper XML 文件放在 src/main/java 目录下,路径要写成 classpath:/com/*/*/mapper/*Mapper.xml;如果放在 resource 目录,则写成 classpath:/mapper/**.xml。
MybatisPlus 查询返回 null 但条数正确,十有八九是字段映射出了问题。无论是驼峰命名冲突、缺少 setter,还是配置未关闭驼峰映射,都可以根据上述方法逐一排查。希望这份经验能帮你快速定位问题。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8