MyBatis

简介: 本文介绍MyBatis中三种映射关系:一对一、一对多、多对一。通过resultMap实现属性与字段映射,解决命名不一致问题;一对多使用`<collection>`标签关联集合;多对一使用`<association>`标签建立关联,结合实例说明配置方式与数据结构。

2.映射关系(1-1 1-n n-n)

1 一对一
定义一个一对一的Result,进行属性-字段之间的一对一关联映射即可,如果属性和字段是一致的,resultType实际也是可以的,resultMap更多是解决字段-属性不一致(满足驼峰命名就是一致),如id(属性)-USER_ID(字段)
2 一对多
设:一个用户对应多个角色
User类中添加List<Role>
一的mapper.xml中,resultMap添加<collection>标签.
如:

<resultMap id="userMap" type="User">
  <id property="id" column="id"></id>
  <result property="username" column="username"></result>
  <result property="password" column="password"></result>
  <result property="address" column="address"></result>
  <result property="email" column="email"></result>
  
  <collection property="roles" ofType="Role">
    <id property="id" column="role_id"></id>
    <result property="name" column="role_name"></result>
  </collection>
</resultMap>

会得到类似这样的数据

{
    "id": "1003",
    "username": "小波",
    "password": "123456",
    "address": "北京市东城区",
    "email": "510273027@qq.com",
    "roles": [
        {
            "id": "1",
            "name": "开发"
        },
        {
            "id": "2",
            "name": "TL"
        }
    ]
}

3 多对一

设:一个作者可以有多个博客

  • Author类中添加Blog
  • 一的mapper.xml中添加<association>

<resultMap id="blogResult" type="Blog">
  <id property="id" column="blog_id" />
  <result property="title" column="blog_title"/>
  <association property="author" column="blog_author_id" javaType="Author" resultMap="authorResult"/>
</resultMap>

<resultMap id="authorResult" type="Author">
  <id property="id" column="author_id"/>
  <result property="username" column="author_username"/>
</resultMap>


目录
相关文章
|
Linux
Linux安装NFS挂载NFS卸载客户端服务端都有
Linux安装NFS挂载NFS卸载客户端服务端都有
443 0
|
3月前
|
XML 前端开发 调度
上下文爆炸?揭秘智能压缩术:引用机制让多智能体飞起来​
本文探讨多智能体协作调度中的层级指挥模式及其在实际应用中的性能与体验优化。针对 React 模式在工具调用、上下文管理、任务总结与过程监督等方面的痛点,提出流式 XML 工具调用、上下文压缩、通用推理兜底、任务总结增强与 MCP 监督机制等改进方案,有效提升任务执行效率与系统稳定性,为多智能体系统优化提供实践参考。
287 0
|
1月前
|
机器学习/深度学习 数据可视化 Apache
仅3B激活参数,更强的多模态理解与推理能力,百度文心 ERNIE-4.5-VL-28B-A3B-Thinking正式开源!
11月11日,百度开源文心ERNIE-4.5-VL-28B-A3B-Thinking多模态模型,仅3B激活参数,性能媲美顶级大模型。具备强大视觉语言理解、跨模态推理与“图像思考”等创新功能,支持工具调用与视频分析,适用于复杂图文任务,全面开放商用。
333 17
仅3B激活参数,更强的多模态理解与推理能力,百度文心 ERNIE-4.5-VL-28B-A3B-Thinking正式开源!
|
1月前
|
消息中间件 存储 人工智能
官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
RocketMQ推出专为AI场景优化的LiteTopic模型,助力企业应对AI应用长耗时、高算力成本与流量波动等挑战,支持异步通信、会话连续性与资源高效调度,已在阿里云及集团内部落地验证。
135 0
官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
|
关系型数据库 MySQL 数据库
MySQL 集群部署实战指南:高可用与可扩展的数据库架构
本文深入讲解MySQL集群部署方案,涵盖主从复制、MHA高可用架构及InnoDB Cluster,结合实战配置与监控维护,助力构建高性能、高可用的数据库系统。
330 0
|
Oracle Unix Linux
|
应用服务中间件 PHP Apache
如何运行php文件
如何运行php文件
359 0
|
传感器 存储 编解码
51单片机--AD/DA
51单片机--AD/DA
694 0
|
存储 算法 安全
隐语小课|私有信息检索(PIR)及其应用场景
隐语小课|私有信息检索(PIR)及其应用场景
862 0