使用MyBatis时,解决表字段和实体类属性不一致问题

简介: 使用MyBatis时,解决表字段和实体类属性不一致问题

使用MyBatis时,解决表字段和实体类属性不一致问题


一、问题起因

我们经常会遇到表字段和实体类属性不一致问题,因为在sql中表的字段命名规则是每个单词用下划线隔开,而java中实体类属性的命名规则是每个单词直接采取驼峰命名,这样就会经常导致不一致问题!

二、不一致问题展示

  • 表字段
  • 实体类字段
@Data
public class Test implements Serializable {
    private static final long serialVersionUID = 337361630075002456L;
    private String id;
    private String name;
    private String state;
    private String createTime;
}

三、解决方案

注:本次只展示xml文件里的写法

  • 第一种:起别名
<select id="selectTest" resultType="com.wang.test.demo.entity.Test">
  select id,name,state,create_time createTime from test
</select>
  • 第二种:使用resultMap来映射
<resultMap type="com.wang.test.demo.entity.Test" id="TestMap">
    <result property="id" column="id" jdbcType="VARCHAR"/>
    <result property="name" column="name" jdbcType="VARCHAR"/>
    <result property="state" column="state" jdbcType="VARCHAR"/>
    <result property="createTime" column="create_time" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectTest" resultMap="TestMap">
  select * from test
</select>
  • 第三种:使用map来直接接(不建议使用,破坏了ORM映射规则)
<select id="selectTest" resultType="map">
  select * from test
</select>

四、总结

以上就是这三种解决方案,谢谢大家观看,有什么问题留言哦!!!

相关文章
|
2月前
|
XML Oracle Java
mybatis反向生成实体类、dao层以及映射文件
mybatis反向生成实体类、dao层以及映射文件
14 1
|
3月前
|
Java 数据库连接 Maven
使用mybatis插件generator生成实体类,dao层和mapper映射
使用mybatis插件generator生成实体类,dao层和mapper映射
55 0
|
7月前
|
XML Java 数据库连接
解决在mybatis中使用class属性绑定映射文件出现的异常问题~
解决在mybatis中使用class属性绑定映射文件出现的异常问题~
|
2月前
ssm(Spring+Spring mvc+mybatis)实体类——Dept
ssm(Spring+Spring mvc+mybatis)实体类——Dept
15 0
|
7月前
|
SQL 安全 Java
Mybatis的动态SQL及关键属性和标识的区别(对SQL更灵活的使用)
Mybatis的动态SQL及关键属性和标识的区别(对SQL更灵活的使用)
27 0
|
5月前
|
SQL Java 数据库连接
解决Mybatis当实体类中的属性名和表中的字段名不一致的问题
解决Mybatis当实体类中的属性名和表中的字段名不一致的问题
47 0
|
7月前
|
Java 关系型数据库 MySQL
【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案
【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案
41 0
|
8月前
|
Java 数据库连接 mybatis
Mybatis配置文件之<settings>属性配置元素解析
Mybatis配置文件之<settings>属性配置元素解析
88 0
|
9月前
|
Java 关系型数据库 数据库连接
Java——mybatis逆向工程生成实体类
Java——mybatis逆向工程生成实体类
|
9月前
|
SQL Java 数据库连接
第一季:11MyBatis中当实体类中的属性名和表中的字段名不一样,怎么办【Java面试题】
第一季:11MyBatis中当实体类中的属性名和表中的字段名不一样,怎么办【Java面试题】
99 0