我用的springboot项目,其中使用的mybatisPlus,但是也带xml文件,xml有resultMap,这个是字段名和entity属性名的一一对应,但是我要是把这个resultMap去掉,在sql里面直接写resultType等于entity直接查询可以映射成功到entity对象吗?我的数据库字段是下划线,entity属性是驼峰
是的,你可以将`resultMap`去掉并在SQL中直接写`resultType`等于实体,但是这需要满足一些条件。在MyBatis中,查询返回的列名默认会与Java实体类的属性名进行一一映射。MyBatis也提供了自动映射的功能,可以自动将下划线命名方式转换为驼峰命名方式。
但是要注意的是,MyBatis的驼峰自动映射规则是基于以下的配置项开启的:
```xml
<!-- 开启驼峰命名转换:camelCaseMapping -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
```
或者在MybatisPlus中配置如下:
```yml
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
```
开启这个配置后,MyBatis会自动将查询结果的下划线字段名映射为Java实体类的驼峰式属性名。所以,如果你的实体类属性名是驼峰式的,而数据库字段是下划线式的,那么只要你开启了这个配置,你就可以省去`resultMap`,直接使用`resultType`进行映射。
但是,如果你的数据库字段名和Java实体类的属性名不能完全一一对应,或者存在特殊映射关系,那么你仍然需要使用`resultMap`来定义映射关系。