SpringBoot整合mybatis——配置mybatis驼峰命名规则自动转换

一、简述

  mybatis 驼峰式命名规则自动转换:

  • 使用前提:数据库表设计按照规范“字段名中各单词使用下划线 "_" 划分”;
  • 使用好处:省去 mapper.xml 文件中繁琐编写表字段列表与表实体类属性的映射关系,即 resultMap。

示例:

    <resultMap id ="UserInfoMap" type="com.example.mybaitsxml.dao.entity.User">
        <result column="name_" property="name"/>
        <result column="sex" property="sex"/>
        <result column="age" property="age"/>
        <result column="class_no" property="classNo"/>
    </resultMap>

SpringBoot 整合 mybatis,开启 mybatis 驼峰式命名规则自动转换,通常根据配置文件不同分为两种方式。

 

1、方式一

  直接 application.yml 文件中配置开启

#mybatis 配置
mybatis:
  typeAliasesPackage: com.example.mybaitsxml.dao.entity
  mapperLocations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true

 

2、方式二

  mybatis-config.xml 文件中配置开启,application.yml 文件指定配置文件。

  • application.yml 文件:

#mybatis 配置
mybatis:
  typeAliasesPackage: com.example.mybaitsxml.dao.entity
  mapperLocations: classpath:mapper/*.xml
  configLocation: classpath:/mybatis-config.xml
  • mybatis-config.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
<!--开启驼峰命名规则自动转换-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>

注:关于 xml 文件,如果删除或者注释掉所有内容,会报错:"Valid XML document must hava a root tag",若忽略这个报错直接运行,程序报错:

“Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 24; 文件提前结束。”

 

3、小结

  开启 mybatis 驼峰式命名规则转换可以省去 xml 文件中 resultMap 编写的麻烦,只需要为 resultType 指定数据库表对应的实体类即可,但是考虑程序的安全性以及映射灵活性,通常开发中还是将 resultMap 结合使用。