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下划线驼峰处理的资料请关注脚本之家其它相关文章!
相关文章
Java中stream.map和stream.forEach的区别
本文主要介绍了Java中stream.map和stream.forEach的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08详解Spring Boot加载properties和yml配置文件
本篇文章主要介绍了详解Spring Boot加载properties和yml配置文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-04-04分页技术原理与实现之Java+Oracle代码实现分页(二)
这篇文章主要介绍了分页技术原理与实现的第二篇:Java+Oracle代码实现分页,感兴趣的小伙伴们可以参考一下2016-06-06SpringBoot整合Sharding-JDBC实现MySQL8读写分离
本文是一个基于SpringBoot整合Sharding-JDBC实现读写分离的极简教程,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的可以了解一下2021-07-07
最新评论