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

简介: 本文介绍MyBatis中四种关联映射:一对一(属性与字段映射)、一对多(如用户与角色,使用`<collection>`)、多对一(如作者与博客,使用`<association>`)及多对多(如部门与用户,需引入中间类并双向配置`<collection>`),实现复杂关系的数据映射。

1 一对一

定义一个一对一的Result,进行属性-字段之间的一对一关联映射即可,如果属性和字段是一致的,resultType实际也是可以的,resultMap更多是解决字段-属性不一致(满足驼峰命名就是一致),如id(属性)-USER_ID(字段)

2 一对多

设:一个用户对应多个角色

  • User类中添加List<Role>
  • 一的mapper.xml中,resultMap添加<collection>标签.

3 多对一

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

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

4 多对多

设:多个部门对应多个用户

  • 定义一个第三方类,假设为UserForDept.java,属性private User user; private Dept dept;
  • User类中添加Set<Dept>(针对不同场合这里也可以List),mapper.xml中添加<collection>添加UsersForDept
  • Dept类中添加Set<User>(针对不同场合这里也可以List),mapper.xml中添加<collection>添加UsersForDept
相关文章
|
3月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
本课程系统讲解MyBatis-Plus(MP)的核心功能与实战应用,涵盖快速入门、条件构造器、Service接口、代码生成、分页插件等常用功能,结合Spring Boot实现CRUD操作与复杂查询,提升开发效率。
持久层框架MyBatisPlus
|
3月前
|
负载均衡 Java 数据安全/隐私保护
Gateway服务网关
网关是微服务架构的统一入口,核心功能包括请求路由、权限控制和限流。通过Spring Cloud Gateway可实现高效路由转发与过滤器处理,支持跨域配置,提升系统安全性和稳定性。
|
3月前
|
存储 JSON NoSQL
MongoDB常用命令
本文介绍了MongoDB常用操作命令,涵盖数据库与集合的创建、查看、删除,以及文档的增删改查、条件查询、投影、排序、分页和统计等功能,结合实例详细讲解了语法格式及使用注意事项,适用于初学者快速掌握MongoDB基本操作。
MongoDB常用命令
|
3月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本文介绍了如何在Eclipse中导入并运行Java Web项目,包括JDK、Tomcat等基础软件的配置,项目导入步骤及服务器绑定方法,并列举了常见错误如数据库连接信息未修改等问题的解决方式。
 Eclipse运行SSM/SSH项目教程
|
3月前
|
NoSQL JavaScript Linux
MongoDB单机部署
本文介绍MongoDB在Windows和Linux系统中的单机部署方法,包括下载安装、配置启动、Shell连接及图形化工具Compass的使用,涵盖版本选择、环境变量设置、配置文件编写等关键步骤,助你快速搭建本地MongoDB环境。
MongoDB单机部署
|
3月前
|
存储 NoSQL 关系型数据库
MongoDB索引知识
MongoDB索引可大幅提升查询效率,避免全表扫描。支持单字段、复合、地理空间、文本及哈希索引,采用B-Tree结构,适用于多种查询场景,提升系统性能。
|
3月前
|
NoSQL Java 测试技术
MongoDB实战演练
本课程以某头条文章评论业务为场景,基于SpringDataMongoDB实现评论的增删改查、分页查询及点赞功能,涵盖需求分析、表结构设计、索引优化及MongoTemplate高效操作,助力掌握MongoDB实战技能。
MongoDB实战演练
|
3月前
|
Java 应用服务中间件 微服务
SpringBoot使用汇总
Spring Boot 是 Spring 框架的扩展,旨在简化 Spring 应用的初始搭建与开发过程。它通过自动配置、起步依赖、内嵌服务器等特性,大幅减少配置文件和编码量,实现快速开发与部署。开发者可专注于业务逻辑,轻松构建独立、生产级的 Spring 应用。
 SpringBoot使用汇总
|
3月前
|
Java Maven
打包
本文介绍Java项目打包部署的两种方式:一是将所有内容打包进单一JAR文件,通过Maven配置、打包命令及运行指令实现快速启动与后台运行;二是将主JAR、依赖与配置文件分离,提升灵活性。涵盖配置、打包、运行及停止服务的完整流程。
打包
|
3月前
|
敏捷开发 Java 测试技术
为什么要单元测试
单元测试是保障软件质量的基石。它不仅快速稳定、利于定位问题,还能提升代码可读性与可维护性。通过“测试金字塔”模型,单元测试作为底层基础,占比应达80%。尽管初期投入时间,但长期显著提升研发效率,支持持续集成与敏捷开发。反观“冰激凌筒”“沙漏”等反模式,暴露了重端到端测试、轻单元测试的弊端。写单测不是踩刹车,而是为软件开发铺平快车道。

热门文章

最新文章