广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis-puls中的resultMap数据映射
  • 673
分享到

mybatis-puls中的resultMap数据映射

mybatis-pulsresultMapresultMap数据映射 2022-11-12 11:11:07 673人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis-puls resultMap数据映射resultTyperesultMapMapper中基本查询语句resultMap中字段映射Mybatis ResultMap

mybatis-puls resultMap数据映射

resultType

resultType可以把查询结果封装到pojo类型中,但必须pojo类的属性名和查询到的数据库表的字段名一致。

如果sql查询到的字段与pojo的属性名不一致,则需要使用resultMap将字段名和属性名对应起来,进行手动配置封装,将结果映射到pojo中!

resultMap

resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

  • 数据库字段:user_id,
  • 实体类字段:userId
  • 需要手动配置设置resultMap

Mapper中基本查询语句


<!-- 查询所有的订单数据 -->
    <!-- resultMap:填入配置的resultMap标签的id值 -->
    <select id="queryOrderAll" resultMap="orderResultMap">
        SELECT id, user_id,
        number,
        createtime, note FROM `order`
    </select>

resultMap中字段映射


<!-- resultMap最终还是要将结果映射到pojo上,type就是指定映射到哪一个pojo -->
    <!-- id:设置ResultMap的id -->
    <resultMap type="order" id="orderResultMap">
        <!-- 定义主键 ,非常重要。如果是多个字段,则定义多个id -->
        <!-- property:主键在pojo中的属性名 -->
        <!-- column:主键在数据库中的列名 -->
        <id property="id" column="id" />
 
        <!-- 定义普通属性 -->
        <result property="userId" column="user_id" />
        <result property="number" column="number" />
        <result property="createtime" column="createtime" />
        <result property="note" column="note" />
    </resultMap>

Mybatis ResultMap结果集映射

当我们的POJO中的字段与数据库中的字段不一致时,在利用resultType进行结果集映射时,不一致的字段将会被赋值为null,这时我们可以利用ResultMap映射进行赋值

POJO


@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private String passWord;
}

数据库字段

在这里插入图片描述

ResultType


<select id="getUserList" resultType="User">
    select * from user;
</select>

可以出数据库中是pwd,而pojo中是password,这样利用resultType是无法映射的,password查出来的结果为null

在这里插入图片描述

ResultMap


<select id="getUserList" resultMap="UserMap">
    select * from user;
</select>
<resultMap id="UserMap" type="User">
    <result column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="pwd" property="password"/>
</resultMap>

我们用resultMap替换resultType

UserMap与下面resultMap里的id属性的值保持一致即可

type为返回值类型,这里我之所以是User是因为我起了别名,如果没有起别名要写出完整的路径

在resultMap中,column代表数据库中的列,也就是数据库里的字段,property为数据库中的字段映射的结果,这里我们与pojo保持一致即可,数据库中的pwd被映射为password,pojo里的password也就能赋值成功了

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis-puls中的resultMap数据映射

本文链接: https://www.lsjlt.com/news/134094.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作