你的浏览器不支持canvas

做你害怕做的事情,然后你会发现,不过如此。

Mybatis数据库字段和实体属性的映射

时间: 作者: 黄运鑫

本文章属原创文章,未经作者许可,禁止转载,复制,下载,以及用作商业用途。原作者保留所有解释权。


  • 如果实体属性名称和数据库字段完全相同,则不需要映射,如果不同就需要配置映射。
  • 映射的方法有四种。

1.通过@Results@Result注解映射

  • 将数据库中的user_nameuser_photo映射到实体类的userNameuserPhoto,如下:

      @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
    

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。