首页 > 其他分享 >mybatis配置文件resultMap标签的使用

mybatis配置文件resultMap标签的使用

时间:2023-02-21 11:07:57浏览次数:37  
标签:实体类 String 配置文件 resultMap id 字段 mybatis public

本文为博主原创,未经允许不得转载:

       resultMap标签是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与

数据库表中的字段进行关联映射。

     注意:当实体类中的字段与数据库表中的字段相同时,可以将resultMap标签中的关联关系

忽略不写。当实体类中的字段与数据库表中的字段不相同时,就需要在resultMap标签中将实体类

字段与数据库字段一 一进行关联映射。

       举例如下:

1.实体类代码:

public class Test
{
private int id;
private String parentId;
private String name;
private String enName;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getParentId()
{
return parentId;
}
public void setParentId(String parentId)
{
this.parentId = parentId;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getEnName()
{
return enName;
}
public void setEnName(String enName)
{
this.enName = enName;
}

}

2.实体类字段与数据库表字段一致:

create table test1(
id int(5) primary key,
parentId int(5),
name varchar(10),
enName varchar(10)
)

3.关联查询映射resultMap使用:

 此处有两种写法:

第一种:将字段在resultMap标签中都进行映射。 

<resultMap type="com.test" id="testResultMap">
<!-- property对应实体类的属性名称,column为数据库结果集的列的名称 -->
<id property="id" column="id" />
<result property="parentId" column="parentId"/>
<result property="name" column="name"/>
<result property="enName" column="enName"/>
</resultMap>

<select id="selectList" resultMap="testResultMap">
select * from test1
</select>

第二种:由于字段与数据库字段相同,mybatis会自动进行匹配,可以写为一下方式:

<resultMap type="com.test" id="testResultMap">
</resultMap>

<select id="selectList" resultMap="testResultMap">
select * from test1
</select>

 

4.实体类字段与数据库字段不一致:

create table test2(
    id int(5) primary key,
    parent_id int(5),
    name varchar(10),
    en_name varchar(10)
)

5.关联查询映射使用resultMap,由于实体类字段与数据库字段不一致,所以要将实体类字段与数据库字段在标签中

进行一一映射。

<!-- type指向你的javabean类,id可以自定义 -->
<resultMap type="Category" id="category">
<!-- property对应实体类的属性名称,column为数据库结果集的列的名称 -->
<id property="id" column="id" />
<result property="parentId" column="parent_id" jdbcType="INTEGER"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="enName" column="en_name" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectList" resultMap="testResultMap">
select * from test2
</select>

特别提示:

  <!-- 是否开启自动驼峰命名规则(camel case)映射, -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,
然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,
然后去实体类Category匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。
要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,
建议采用resultMap。



标签:实体类,String,配置文件,resultMap,id,字段,mybatis,public
From: https://blog.51cto.com/u_15535797/6076067

相关文章

  • mybatis中mysql转义讲解
    本文为博主原创,未经允许不得转载:     在mybatis中写sql的时候,遇到特殊字符在加载解析的时候,会进行转义,所以在mybatis中写sql语句的时候,遇到特殊字符进行转义处理。 ......
  • Mybatis
    1、Mybatis简介1.1、什么是MyBatisMyBatis是一款优秀的持久层框架MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程MyBatis可以使用简单的X......
  • 基于 springboot + mybatis-plus + MySQL 重构过去一个项目的踩坑总结(持续更新)
    ①使用mybatis-plus时,如果根据某个条件查询没有查到数据,那么返回的实体类是null,如果使用get方法就会导致空指针异常,这点要规避②如果Map初始化在循环体外,那么在循......
  • MyBatis plus 代码生成器
    导入依赖<!--代码生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version>......
  • SpringBoot04 - 整合MyBatis
    整合MyBatis​ 整合完JUnit下面再来说一下整合MyBatis,这个技术是大部分公司都要使用的技术,务必掌握。如果对Spring整合MyBatis不熟悉的小伙伴好好复习一下,下面列举出原始......
  • MyBatis-RedisCache源码分析
    回顾在前面,我们通过redis​集成了MyBatis​的二级缓存,440.MyBatis的二级缓存整合redis,接下来,我们来分析一下RedisCache​的源码。源码分析RedisCache主要是通过......
  • mybatis
    mybatis3增加注解@SelectProvidermybatis3中增加了使用注解来配置Mapper的新特性,其中@Provider的使用方式较为复杂。@provide主要分为四种:@InsertProvider@DeletePro......
  • MyBatisPlus(springBoot版)-尚硅谷
    Pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • DateTimePicker 日期时间选择器 + mybatis-plus 传参后端查询 传值自定义list,后端再
    前端<el-form-itemlabel="创建时间"prop="extendate"><el-date-pickerv-model="queryParams.extendate"......
  • 项目中TS的配置文件tsconfig.json
    1.快速搭建一个浏览器开发环境建立好文件夹后,打开VSCode,把文件夹拉到编辑器当中,然后打开终端,运行npminit-y,创建package.json文件。生成文件后,我们接着在终端中运行t......