mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法

mybatis的mapper.xml中resultMap标签的使用

一日一步,小步? 大步?
聚沙成塔,集腋成裘。

1.前言
  最近博主在做一个ssm框架的共享汽车管理系统,其中,数据库字段设计的有下划线方式,a_username,然后在写mapper.xml里面的sql语句的时候,一直出现查询语句查询的值为null的情况。或者是resultMap标签和驼峰规则不太明白的同学,可以看这里。
  
于是顺便梳理一下。

2.关于resultMap
2.1.什么是resultMap?
  在mybatis中有一个resultMap标签,它是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与数据库表中的字段进行关联映射。

注意:
1、当实体类中的字段与数据库表中的字段相同时,可以将resultMap标签中的关联关系忽略不写。
当实体类中的字段与数据库表中的字段不相同时,就需要在resultMap标签中将实体类字段与数据库字段一 一进行关联映射,或者开启驼峰规则,让它自动转换。

3.举例说明
3.1.数据库与实体类之间名称相同
数据库这么写:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第1张图片
然后对应写的实体类:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第2张图片
在mapper中的查询方式:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第3张图片
可以看到,是最常规的sql查询写法,这样就能正常的查询到数据库的数据。

当然这个时候开不开启驼峰规则都可以,比如在mybatis的配置文件中声明开启,也是一样的效果。
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第4张图片
3.2.数据库与实体类之间不相同
比如常见的写法: 数据库使用下划线,与之映射的实体类中采用驼峰原则。
两种处理方式:

第一种:开启驼峰规则
数据库如下:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第5张图片
实体类如下:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第6张图片
解决:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第7张图片
在mybatis的配置文件里加入如上的配置,就基本不用property进行字段和实体和属性的映射
在进行sql查询和初始化实体时mybatis会为我们自动转化,写sql语句的时候也不必为有下划线的字段设置与实体类相同的别名。
如未加配置之前的sql查询语句为(使用别名):
select id, user_name as userName, user_sex as userSex, user_age as userAge from user
加入配置之后的sql语句为(直接使用数据库字段名):
select id, user_name, user_sex, user_age from user

Sql如下:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第8张图片
这样就能直接查询出数据库里面的数据。

第二种:使用resultMap标签来映射
比如数据库:
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第9张图片
实体类如下:

mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第10张图片
然后在mapper.xml中书写resultMap标签,使得数据库字段和实体类
名称映射。(将实体类字段与数据库字段在标签中进行一一映射)
mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法_第11张图片
源码如下:



    
    
    
    
    
    
    
    
    
    
    
    
    

提醒:

要记得去mybatis的配置文件中查看是否已经去掉驼峰规则的声明。使用resultMap,就要禁用驼峰规则。如果不想改实体类的话,建议采用resultMap。

————————————————
版权声明:本文为CSDN博主「csdnzoutao」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ITBigGod/article/details/82685918、

SpringBoot Mybatis 的驼峰命名 开启驼峰命名的方法

SpringBoot Mybatis 的驼峰命名 开启驼峰命名的方法

第一种方式:

可以在配置类中进行配置。配置的Demo如下:

@Bean(name="sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
    sqlSessionFactoryBean.setDataSource(dataSource);
    sqlSessionFactoryBean.setVfs(SpringBootVFS.class);
    sqlSessionFactoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
    return sqlSessionFactoryBean.getObject();
}

第二种方式:

在SpringBoot的application配置文件中进行设置,这里是properties的配置,配置的Demo如下:

 mybatis.configuration.mapUnderscoreToCamelCase=true

 mybatis.configuration.map-underscore-to-camel-case=true

第三种方式:

第三种我称为原始的XML形式的配置,配置的Demo如下:


    

原文链接:https://www.jianshu.com/p/1507a47f43ac

你可能感兴趣的:(mybatis的mapper.xml中resultMap标签的使用及SpringBoot 开启驼峰命名的方法)