- 如果实体属性名称和数据库字段完全相同,则不需要映射,如果不同就需要配置映射。
- 映射的方法有四种。
1.通过@Results
和@Result
注解映射
-
将数据库中的
user_name
和user_photo
映射到实体类的userName
和userPhoto
,如下:@Mapper @Repository public interface UserMapper { @Select("SELECT * FROM user") @Results(value = { @Result(property = "userName", column = "user_name", javaType = String.class), @Result(property = "userPhoto", column = "user_photo", javaType = String.class) }) List<User> findAll(); }
2.通过xml文件映射
-
mapper配置文件如下:
<mapper namespace="com.example.demo.mybatis.mapper.UserMapper"> <resultMap type="com.example.demo.mybatis.entity.User" id="userResultMap"> <!-- id为主键的映射 --> <id property="id" column="user_id"/> <!-- result为主键之外的字段映射 --> <result property="userName" column="user_name"/> <result property="userPhoto" column="user_photo"/> </resultMap> </mapper>
3.配置开启驼峰映射
- 驼峰映射是指:例如将数据库中的字段
user_name
映射为实体中的userName
。 -
在
.properties
文件中开启驼峰映射:mybatis.configuration.map-underscore-to-camel-case=true
-
或者在
.yml
文件中开启驼峰映射:mybatis configuration map-underscore-to-camel-case: true
-
或者在mybatis的配置文件中开启驼峰映射:
<configuration> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
4.在SQL语句中定义别名映射
-
例如数据库字段名
user_name
和实体类属性userName
的映射如下:SELECT user_name AS userName FROM user