SpringBoot配置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结合使用。

到此这篇关于SpringBoot配置mybatis驼峰命名规则自动转换的实现的文章就介绍到这了,更多相关SpringBoot mybatis驼峰命名转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决mybatis plus 驼峰式命名规则问题

    在我们使用mybatis plus 时, mybatis plus 可以帮我们自动封装我们的实体类用来查询添加,当我们遇见我们的尸体类名与我们的表字段是驼峰写法时: 我们在数据库的字段名也是 userCode 但是如果我们不设置mybstis plus 默认的驼峰式编码在mybatis plus 则会默认把驼峰式编码写成 user_code, 这种下划线格式的字段, 这时你会发现你的代码会出错,它会提示你user_code字段不存在 解决方案: springboot : 1. applictio

  • mybatis Map查询结果下划线转驼峰的实例

    添加一个配置类MybatisCamelConfig 即可 package com.fpi.notify.config; import com.google.common.base.CaseFormat; import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.wrapper.MapWrapper; import org.apache.ibatis.reflection.wrapper.

  • mybatisplus解决驼峰命名映射问题详解

    问题的提出 今天我在测试mybatis的时候,发现查询出来的一些字段为null,而且这些字段都是驼峰命名了的.所以我首先就想到了是数据库表字段和类映射出了问题. 解决办法 一.理解spring-mybatis.xml中关于驼峰命名的配置 mybatisplus是mybatis的升级版,所以配置还是有点儿差别,如果是mybatis的话,直接在configuration中配置就行了,如下: <?xml version="1.0" encoding="UTF-8"?

  • MyBatis Map结果的Key转为驼峰式

    MyBatis 配置文件中,支持下面这几种配置: properties, settings, typeAliases, typeHandlers, objectFactory, objectWrapperFactory, reflectorFactory, plugins, environments, databaseIdProvider, mappers 我们使用objectWrapperFactory来解决这个问题. 配置这个属性时,必须遵守上面属性配置的顺序进行配置(在objectFact

  • SpringBoot配置mybatis驼峰命名规则自动转换的实现

    一.简述 mybatis驼峰式命名规则自动转换: 使用前提:数据库表设计按照规范"字段名中各单词使用下划线"_"划分": 使用好处:省去mapper.xml文件中繁琐编写表字段列表与表实体类属性的映射关系,即resultMap. 示例: <resultMap id ="UserInfoMap" type="com.example.mybaitsxml.dao.entity.User"> <result col

  • 解读springboot配置mybatis的sql执行超时时间(mysql)

    目录 一.yml全局配置 二.java配置类配置 总结 当某些sql因为不知名原因堵塞时,为了不影响后台服务运行,想要给sql增加执行时间限制,超时后就抛异常,保证后台线程不会因为sql堵塞而堵塞. 一.yml全局配置 单数据源可以,多数据源时会失效 二.java配置类配置 成功抛出超时异常. import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.Drui

  • Mybatis plus关闭驼峰命名的四种方法(防止出现查询为Null)

    目录 问题 解决方法: 修改方法1 修改方法2 修改方法3 修改方法4(Springboot) 问题 数据查询出后其中几个字段为null 解决方法: 数据库的字段命名方式为使用下划线连接,对应的实体类应该是驼峰命名方式,而我使用的是和数据库同样的命名方式. 所以mybatis-plus映射不到,修改实体类的字段命名方式为驼峰命名方式. 这是因为mybatis默认开启驼峰命名法,按规则数据表中的lastName字段应对应实体类中的last_name属性,而实体类中的lastName属性应对应数据表

  • SpringBoot使用Mybatis注解实现分页动态sql开发教程

    目录 一.环境配置 二.Mybatis注解 三.方法参数读取 1.普通参数读取 2.对象参数读取 四.分页插件的使用 五.动态标签 六.完整示例 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframework.boot:spring-boot-starter-web', "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.3", //Mybatis依赖及分页

  • 前端命名规则总结

    目录 引言 不要嫌弃函数名过长 变量 / 函数 命名头部 什么时候用 has , 什么时候用 is 一个好的命名需要遵循的规则 函数变量 使用缩写 比较通用的缩写 常量命名 单词拼接 加深语义化 引入自定义组件 文件命名的风格 引言 自己总结的一些常用的命名规范,好的命名不仅可以使代码看起来简洁,并且维护起来也方便了许多.作为初级程序员,不给他人增加负担也是需要学习的 不要嫌弃函数名过长 const getLocationPermission = () => {} 这是一个用来获取定位权限的函数

  • SpringBoot Mybatis Plus公共字段自动填充功能

    一.应用场景 平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个字段有没有传进去,很麻烦.mybatisPlus有一个很好的解决方案.也就是公共字段自动填充的功能.一般满足下面条件的字段就可以使用此功能: 这个字段是大部分表都会有的. 这个字段的值是固定的,或则字段值是可以在后台动态获取的. 常用的就是last_update_time,last_update_name这两个字段. 二.配置MybatisPlus 导包:

  • SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法

    目录 1 配置多数据源时,application.yml 的有关mybatis的配置是失效的,因为他不知道配置哪一个数据源 2 application.yml 配置文件 3 解决方法一 4 完整代码 4解决方法二 1 配置多数据源时,application.yml 的有关mybatis的配置是失效的,因为他不知道配置哪一个数据源 2 application.yml 配置文件 server: # 服务器的HTTP端口 port: 8097 spring: # 配置数据源 datasource: m

  • springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve

  • SpringBoot整合Mybatis,解决TypeAliases配置失败的问题

    问题描述 在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来. 在Mybatis的文档明确写出,如果你没有明确定义实体类的Aliase,框架会自动将Class Name自动作为别名. 那么问题来了,当使用java -jar xxx.jar&启动的时候,会报出以下错误, Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'XXXXX'.

随机推荐