zoukankan      html  css  js  c++  java
  • 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结合使用。

  • 相关阅读:
    Kubernetes二进制文件下载链接
    Python 中取代 Printf 大法的工具
    Python 七步捉虫法
    改善 Python 程序的 91 个建议
    最全的 API 接口集合
    一个可能是世界上最全的 API 接口集合库开源项目
    优质中文NLP资源集合,做项目一定用得到!
    Flair:一款简单但技术先进的NLP库
    取代 Python 多进程!伯克利开源分布式框架 Ray
    使用 PyHamcrest 执行健壮的单元测试
  • 原文地址:https://www.cnblogs.com/gavincoder/p/10140562.html
Copyright © 2011-2022 走看看