mybatis-plus 在mapper.xml写的查询sql返回的数据,不会应用实体类的字段转换,比如说下划线自动转实体类的驼峰
时间: 2024-12-14 10:13:48 浏览: 8
MyBatis-Plus 是基于 MyBatis 的一个简化版持久层框架,它通过 XML 或注解的方式方便地生成映射文件,减少了手动配置的工作量。当你在 mapper.xml 中编写 SQL 查询并直接返回结果时,MyBatis-Plus 默认不会自动将查询到的结果集转换为你定义的实体类(Pojo),特别是当数据库表的字段命名风格与 Java 类的属性名不符时。
例如,如果你的数据库表字段是 `user_name`,而在实体类中对应的属性名为 `userName`,MyBatis-Plus 将不会自动进行字段名的转换。这时,你需要手动进行数据绑定,通常的做法是在 Mapper 接口中定义一个泛型方法,并在方法体内部处理结果:
```java
List<User> selectUsers(@Param("username") String username) {
return userMapper.selectList(new QueryWrapper<User>().eq("user_name", username));
}
```
在这个例子中,`@Param` 注解用于指定传入的参数名与 SQL 参数匹配,`QueryWrapper` 是 MyBatis-Plus 提供的动态 SQL 构建工具。
如果你希望在读取结果时自动转换,可以考虑使用 ModelMapper 或者自定义 ResultMap 来完成这种字段映射。
阅读全文