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

简介: MyBatis中通过resultMap实现一对一、一对多、多对一及多对多映射。一对一用于属性与字段映射;一对多通过`<collection>`关联主表与子表(如用户对应多个角色);多对一使用`<association>`关联对象(如博客关联作者);多对多借助中间类实现双向关联(如用户与部门互关)。

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













会得到类似这样的数据
{
"id": "1003",
"username": "小波",
"password": "123456",
"address": "北京市东城区",
"email": "510273027@qq.com",
"roles": [
{
"id": "1",
"name": "开发"
},
{
"id": "2",
"name": "TL"
}
]
}
3 多对一
设:一个作者可以有多个博客
● Author类中添加Blog
● 一的mapper.xml中添加
如:








或:











4 多对多
设:多个部门对应多个用户
● 定义一个第三方类,假设为UserForDept.java,属性private User user; private Dept dept;
● User类中添加Set(针对不同场合这里也可以List),mapper.xml中添加添加UsersForDept
● Dept类中添加Set(针对不同场合这里也可以List),mapper.xml中添加添加UsersForDept

相关文章
|
22小时前
|
缓存 Dubbo Java
什么是API网关
API网关是一种架构思想,用于统一接收外部请求并转发至后端服务,实现协议转换、路由、鉴权、限流、熔断降级等功能。通过网关,可简化客户端调用,提升系统安全性与可维护性。常见实现如Kong、Zuul、Spring Cloud Gateway等,广泛应用于微服务架构中,支持异步处理、全链路监控与多维度流量控制。
|
22小时前
|
缓存 前端开发 安全
数据同步原理
Soul 网关通过推拉模式从配置服务同步数据,支持 WebSocket、HTTP 长轮询和 Zookeeper 三种方式。1.x 版本基于 Zookeeper 推送,2.x 版本默认采用 HTTP 长轮询(借鉴 Apollo/Nacos),实现秒级更新。管理后台变更配置后,通过 EventPublisher 发布事件,根据 sync.strategy 策略将变更推送给网关并更新本地缓存。WebSocket 主动推送全量+增量数据;Zookeeper 利用 watch 机制监听节点变化;HTTP 长轮询则通过异步 Servlet + BlockingQueue 实现准实时同步,保障配置一致性。
|
1天前
|
安全 Java 数据安全/隐私保护
认识SpringSecurity
SpringSecurity是Java领域主流的权限管理框架,核心功能包括认证、鉴权与安全防护。支持表单、OAuth2、JWT等多种认证方式,基于过滤器链实现请求授权、方法级控制及RBAC模型,并可防御CSRF等常见攻击,具备高扩展性与灵活性,保障系统安全。
|
22小时前
|
Dubbo JavaScript 前端开发
Soul网关接入与验证
本文介绍如何将服务提供者与消费者接入Soul网关,涵盖pom依赖、Controller注解(@SoulSpringMvcClient)、配置文件参数说明(如adminUrl、contextPath、full模式等),并支持HTTP与Dubbo双协议。通过zookeeper注册,结合soul-admin与soul-bootstrap启动,完成服务注册与网关路由验证,附完整代码与测试示例。
|
21小时前
|
存储 Java 关系型数据库
微服务概述
本文介绍单体与微服务架构区别,阐述微服务定义、特征及优缺点,涵盖技术选型、部署方案与学习路径,帮助理解微服务演进逻辑及其分布式设计精髓,为构建高内聚、低耦合系统提供理论支撑。
|
22小时前
|
存储 安全 Java
认证源码分析与自定义后端认证逻辑
本文深入分析Spring Security认证流程,从UsernamePasswordAuthenticationFilter到AuthenticationManager,层层剖析认证机制。详解AbstractUserDetailsAuthenticationProvider与UserDetails的实现要点,强调权限信息的必要性,并通过自定义UserDetailService完成数据库认证逻辑。最后结合SecurityConfig配置,实现登录流程定制,完整代码见GitHub仓库Day02分支。
|
22小时前
|
前端开发 安全 Java
自定义认证前端页面
本文介绍Spring Security基础配置:通过前端页面与后端接口联动,实现登录认证。后端新增接口与安全配置类,配置表单登录、权限控制及跳转逻辑,禁用CSRF,启动后访问指定路径自动跳转登录页,输入信息后成功获取响应内容,完成安全验证流程。(238字)
|
22小时前
|
安全 Java Spring
过滤器链加载原理
通过前文十五个过滤器的解析,我们揭开了Spring Security的神秘面纱。虽未显式配置,但这些过滤器由DelegatingFilterProxy通过名称springSecurityFilterChain自动加载,最终指向FilterChainProxy,并封装于DefaultSecurityFilterChain中执行。底层原理明晰后,方可更好实现自定义认证页面。
|
22小时前
|
存储 缓存 安全
常用过滤器介绍
Spring Security通过过滤器链实现安全控制,涵盖认证、授权、CSRF防护等。如SecurityContextPersistenceFilter管理上下文,UsernamePasswordAuthenticationFilter处理登录,LogoutFilter处理退出。各过滤器分工明确,按需加载,构成灵活的安全体系。(238字)
|
22小时前
|
安全 Java 开发工具
工程搭建与验证
本文介绍如何基于阿里云脚手架快速搭建SpringBoot工程(选用2.7.6版本),并整合Spring Security实现基础安全控制。涵盖项目创建、代码导入、Web接口开发及Security依赖引入,演示登录认证流程,默认用户名为user,密码动态生成。完整代码见GitHub仓库Day01分支。