Mybatis下划线驼峰处理的几种方法

 更新时间:2023年12月26日 11:51:46   作者:怪 咖@  
这篇文章主要讲述Mybatis下划线驼峰处理的几种方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

首先先说明一下为什么会出现这种情况

数据库当中有时候会起一些带下划线的列名,例如:last_Name,而javabean当中一般遇下划线都是驼峰显示的。一般起名称都是这样 lastName,这时候就会出现一个问题,就是封装不到javabean里面值。就是因为数据库列名和javabean名称不一致而封装不上。

在这里插入图片描述

java对象

在这里插入图片描述

查出来会发现赋值不上去

Employee [id=1, lastName=null, email=1, gender=1]

这时候有人该说了,我javabean当中也用last_name不上也可以呀。
答案:可以,但是Java中一般是final变量才用大写字母+下划线命名。

1、可以通过写别名

在针对于对象属性多的情况下就不实用了。写起来可能因为这一个名称,全得把列名写出来。

<select id="getEmpById" resultType="com.gzl.mybatis.bean.Employee">
	select id as id,last_Name as lastName,email as email,gender as gender from student where id = #{id}
</select>

2、开启驼峰命名

在mybatis-config-xml添加以下配置,切记xml是有顺序要求的,如果xml当中用到了properties标签,就放在这个标签下面,如果没有就放在最上面。

<settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

3、自定义javabean的封装规则

<!--自定义某个javaBean的封装规则
	type:自定义规则的Java类型
	id:唯一id方便引用
	  -->
	<resultMap type="com.gzl.mybatis.bean.Employee" id="MySimpleEmp">
		<!--指定主键列的封装规则
		id定义主键会底层有优化;
		column:指定哪一列
		property:指定对应的javaBean属性
		  -->
		<id column="id" property="id"/>
		<!-- 定义普通列封装规则 -->
		<result column="last_name" property="lastName"/>
		<!-- 其他不指定的列会自动封装:我们只要写resultMap就把全部的映射规则都写上。 -->
		<result column="email" property="email"/>
		<result column="gender" property="gender"/>
	</resultMap>
 	
 	<select id="getEmpById" resultMap="MySimpleEmp">
		select * from student where id = #{id}
	</select>

以上就是Mybatis下划线驼峰处理的几种方法的详细内容,更多关于Mybatis下划线驼峰处理的资料请关注脚本之家其它相关文章!

相关文章

  • logback如何去掉DubboMonitor烦人的INFO日志

    logback如何去掉DubboMonitor烦人的INFO日志

    这篇文章主要介绍了logback如何去掉DubboMonitor烦人的INFO日志方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 浅谈SpringCloud Alibaba和SpringCloud的区别

    浅谈SpringCloud Alibaba和SpringCloud的区别

    这篇文章主要介绍了浅谈SpringCloud Alibaba和SpringCloud的区别,Spring Cloud Netflix框架也属于Spring Cloud,但是Netflix并不是由spring来进行开发的,需要的朋友可以参考下
    2023-05-05
  • Java调用Redis集群代码及问题解决

    Java调用Redis集群代码及问题解决

    这篇文章主要介绍了Java调用Redis集群代码及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • SpringBoot集成QQ第三方登陆的实现

    SpringBoot集成QQ第三方登陆的实现

    这篇文章主要介绍了SpringBoot集成QQ第三方登陆的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 浅谈idea live template高级知识_进阶(给方法,类,js方法添加注释)

    浅谈idea live template高级知识_进阶(给方法,类,js方法添加注释)

    下面小编就为大家带来一篇浅谈idea live template高级知识_进阶(给方法,类,js方法添加注释)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Jeecg-Boot异常处理'jeecg-boot.QRTZ_LOCKS' doesn't exist问题

    Jeecg-Boot异常处理'jeecg-boot.QRTZ_LOCKS' doesn'

    这篇文章主要介绍了Jeecg-Boot异常处理'jeecg-boot.QRTZ_LOCKS' doesn't exist问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 详解Spring Boot Profiles 配置和使用

    详解Spring Boot Profiles 配置和使用

    本篇文章主要介绍了详解Spring Boot Profiles 配置和使用,具有一定的参考价值,有兴趣的可以了解一下
    2017-06-06
  • LCN分布式事务解决方案详解

    LCN分布式事务解决方案详解

    这篇文章主要介绍了LCN分布式事务解决方案详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 告诉你为什么 ThreadLocal 可以做到线程隔离

    告诉你为什么 ThreadLocal 可以做到线程隔离

    对于 ThreadLocal 我们都不陌生,它的作用如同它的名字用于存放线程本地变量,这篇文章主要介绍了为什么 ThreadLocal 可以做到线程隔离,需要的朋友可以参考下
    2022-07-07
  • Spring-Data-JPA整合MySQL和配置的方法

    Spring-Data-JPA整合MySQL和配置的方法

    这篇文章主要介绍了Spring Data JPA整合MySQL和配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论