MyBatis
文章平均质量分 82
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。
小丁学Java
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JPA vs. MyBatis:一场关于“多对多”关联的“自动化”与“掌控权”之战
本文通过“需求单关联分类”场景对比JPA和MyBatis的设计哲学与实现差异。JPA采用全自动ORM方式,通过@ManyToMany注解自动处理多对多关系,开发者只需操作Java对象,代码简洁但失去SQL控制权。MyBatis作为SQL Mapper则要求手动编写所有SQL,包括中间表操作,虽然开发效率较低但能精准控制SQL执行。二者各有所长:JPA适合追求开发效率的场景,MyBatis则适合需要SQL优化的项目。原创 2025-08-27 17:16:45 · 1057 阅读 · 0 评论 -
content, records, 还是 list?揭秘Java主流框架分页API的“潜规则”
Java主流框架分页API的默认字段命名规则:Spring Data JPA返回content数组,MyBatis-Plus使用records字段,MyBatis配合PageHelper插件则返回list。这些差异源于不同框架的分页对象实现方式,了解这些"潜规则"能帮助开发者快速识别后端技术栈并正确对接API。自定义分页可能使用data、items等字段名,但标准化的API文档始终是最可靠的参考依据。原创 2025-08-16 15:02:46 · 918 阅读 · 0 评论 -
Mybatis 征途:手写 SQL,高效聚合“福利方案”核心数据!
本文介绍了使用Mybatis实现福利方案管理员仪表盘统计接口的技术方案。该接口通过手写SQL实现跨实体聚合查询,主要统计维度包括:福利方案品牌数量、产品数量及货盘总值。技术实现上采用Mybatis的Mapper层进行数据库聚合计算,利用COUNT()和SUM()函数直接在数据库层面完成统计,避免N+1查询问题。同时处理NULL值和精度问题,确保数据准确性。通过多租户隔离(admin_id过滤)保障数据安全,所有计算都在数据库层面完成,提高了接口性能。文章通过流程图和时序图展示了Mybatis驱动下的数据流转原创 2025-07-17 18:17:49 · 1044 阅读 · 0 评论 -
Mybatis 征途:我的福利方案产品更新接口,如何驾驭“部分更新”与“关联变更”?
摘要:本文详细介绍了使用Mybatis实现福利小程序中updateSolutionProduct接口的全过程。该接口涉及权限校验、部分更新和多对多关联变更等复杂场景,通过Mybatis的动态SQL和手动SQL操作实现高效控制。文章通过流程图和时序图展示了请求流转过程,重点解析了权限验证、部分更新(使用<set>和<if>标签)以及关联表操作(先删除后批量插入)的实现策略。整个流程采用@Transactional确保事务一致性,体现了Mybatis在复杂更新场景下的灵活性和精确控制能力原创 2025-07-12 14:36:02 · 350 阅读 · 0 评论 -
Mybatis 征途:我的福利方案产品列表接口,如何手写 SQL 实现“精准查询”?
本文将深入探讨使用Mybatis实现产品列表查询接口的过程,重点分析手写SQL、动态SQL和权限校验的实现方法。通过Mybatis Mapper XML文件构建包含JOIN查询和动态WHERE条件的复杂SQL语句,使用PageHelper插件处理分页,并采用双重校验机制确保数据安全。系统实现了精准查询、动态搜索和分页排序功能,在保证性能的同时兼顾数据隔离需求。技术栈包括Spring Boot、Mybatis和MySQL等,适用于需要精细化控制SQL查询的后端开发场景。原创 2025-07-10 23:29:48 · 785 阅读 · 0 评论 -
Mybatis 征途:我的福利方案产品创建接口,如何搞定多重校验与关联插入?
本文探讨了使用Mybatis实现复杂创建接口createSolutionProduct的过程。该接口需要处理多重校验、数据关联和事务管理等挑战。通过Mybatis的手写SQL能力,可以灵活控制数据隔离(WHERE子句加入admin_id)、多重关联(同时关联Admin、SolutionBrand、Product等)和唯一性校验(SELECT COUNT(*)查询)。接口采用@Transactional确保原子性,包含完善的参数校验和异常处理。技术栈包括Spring Boot、Mybatis、MySQL等。文原创 2025-07-10 23:23:40 · 609 阅读 · 0 评论 -
Mybatis实战:复杂产品分类分页查询 ✨
摘要:本文介绍了使用Mybatis实现产品分类列表分页查询接口的技术方案。通过对比JPA的"面向对象"思维,Mybatis采用"面向SQL"的持久化方式,提供更精细的SQL控制。核心实现包括:1)手动编写SQL实现多租户数据隔离;2)使用Mybatis动态SQL和PageHelper插件处理分页排序;3)保持与JPA版相同的业务逻辑和接口规范。文章详细阐述了Mybatis特有的组件结构、工作流程和数据隔离机制,并通过流程图展示了请求处理过程,突出Mybatis在SQL原创 2025-07-10 17:02:36 · 335 阅读 · 0 评论 -
MyBatis 的“只读魔法”:构建安全、无副作用的优惠券与积分预览 ✨
MyBatis构建安全优惠券预览API摘要 本文探讨如何利用MyBatis构建一个无副作用的优惠券与积分预览API,核心特点包括: 安全只读 - 通过@Transactional(readOnly=true)和仅使用select方法确保不产生数据库写操作 完整校验 - 执行与实际核销相同的业务校验逻辑,包括用户权限、优惠券有效性等 精确计算 - 使用BigDecimal进行金融级精确计算 技术实现包含: MyBatis Mapper XML定义SELECT查询 DTO对象处理请求响应 Service层实现业原创 2025-06-28 18:58:05 · 1113 阅读 · 0 评论 -
MyBatis实战:动态查询用户核销日志 ✨
MyBatis 精控审计:用户核销日志查询 API 摘要 本文详细介绍如何利用 MyBatis 构建动态可搜索的用户核销日志查询 API。核心功能是让管理员通过用户 ID 查询特定用户的核销记录列表,同时支持分页、排序和动态搜索功能。文章对比了 MyBatis 版的技术实现方案,重点讲解了权限控制机制、分页与排序的实现方式,以及如何使用 MyBatis 的动态 SQL 特性构建灵活的查询条件。技术栈包括 Java、Spring Boot、MyBatis 和 MySQL,通过 MyBatis 的 XML 映射原创 2025-06-28 14:57:43 · 835 阅读 · 0 评论 -
MyBatis 用户请注意!告别 @Lock,在 XML 中手动为你的数据加把“锁” ✨
MyBatis实现悲观锁方案:通过XML映射文件手动添加SQL锁机制 摘要: 本文对比了JPA注解与MyBatis实现悲观锁的区别,详细介绍了MyBatis下如何手动为数据加锁。MyBatis采用SQL驱动方式,在Mapper接口中定义带锁查询方法,并在XML映射文件中编写含"FOR UPDATE"子句的SQL语句。具体实现分为三步:1)在Mapper接口定义带锁查询方法;2)在XML文件中实现带"FOR UPDATE"的SQL查询;3)在Service层事务中调用该原创 2025-06-27 17:15:16 · 667 阅读 · 0 评论 -
MyBatis精控优惠券积分核销SQL之道✨
文章摘要:本文探讨如何利用MyBatis实现优惠券核销与积分抵扣的一站式管理功能。相比JPA方案,MyBatis通过手动编写SQL提供了更精准的数据库操作控制。核心内容包括:1)定义Mapper XML文件实现优惠券状态查询更新、积分计算等SQL逻辑;2)保持与JPA版本一致的DTO设计;3)在Service层整合事务管理与业务校验;4)强调使用SELECT FOR UPDATE处理并发问题。技术栈基于Spring Boot+MyBatis+MySQL,重点展示了MyBatis在处理复杂交易场景时对SQL的原创 2025-06-26 19:49:51 · 835 阅读 · 0 评论 -
MyBatis 驾驭数据洪流:管理员查询用户优惠券接口的 SQL 精粹与分页艺术 ✨
🌊 MyBatis 数据查询精要 本文详细介绍了使用MyBatis实现管理员查询用户优惠券接口的技术方案。该接口支持: 核心功能:基于用户ID查询优惠券列表 安全控制:管理员权限验证机制 扩展功能: 分页查询(PageHelper插件) 多字段排序 动态条件搜索(MyBatis动态SQL) 性能优化: 关联查询(JOIN+ResultMap) DTO数据传输对象 技术栈包含Spring Boot、MyBatis、MySQL等,通过XML映射文件实现复杂SQL逻辑,提供比JPA更灵活的SQL控制能力。原创 2025-06-20 19:36:10 · 316 阅读 · 0 评论 -
MyBatis 精控发券:管理员发放优惠券接口的 SQL 智慧与并发考量 ✨
🛠️ MyBatis 实现管理员发券接口摘要 本文探讨使用 MyBatis 实现管理员发放优惠券功能的技术方案。通过 XML (Extensible Markup Language, 可扩展标记语言) 映射文件手动编写精准 SQL (Structured Query Language, 结构化查询语言),实现以下核心逻辑: 🔹 严格校验:检查优惠券模板状态、库存、用户资格等条件 🔹 原子操作:通过 UPDATE...WHERE 语句确保库存扣减的原子性 🔹 批量生成:在 Service 层计算有效期原创 2025-06-19 20:40:49 · 906 阅读 · 0 评论 -
MyBatis 精雕细琢:打造终极优惠券模板查询 API 的 SQL 艺术 ✨
本文将探讨如何使用 MyBatis 构建优惠券模板查询 API,重点关注 SQL 控制与优化。通过 MyBatis 的动态 SQL 特性、resultMap 关联映射和分页插件,实现了一个灵活高效的查询接口。该方案支持权限控制、分页查询、多字段排序以及关联数据加载,避免了 N+1 问题。文章对比了 MyBatis 与 JPA 的实现差异,展示了 MyBatis 在 SQL 精细化控制方面的优势。原创 2025-06-19 14:25:46 · 793 阅读 · 0 评论 -
MyBatis 精控:智能优惠券模板创建与币种自动关联的 SQL (Structured Query Language, 结构化查询语言) 之道 ✨
摘要 本文介绍了如何使用MyBatis实现智能优惠券模板创建功能,重点展示了后端如何自动关联小程序默认币种的技术实现。相比于JPA方案,MyBatis版采用XML映射文件手动编写SQL语句,通过Service层调用Mapper接口获取小程序配置信息并自动设置币种字段。文章详细讲解了DTO校验、类型化面值/折扣处理、多重验证机制等关键环节的实现方式,同时对比了MyBatis与JPA在时间戳管理等技术细节上的差异。该方案适用于偏好精细化SQL控制的开发场景,保持了与JPA版本相同的业务功能和API响应结构,但提原创 2025-06-18 19:47:24 · 887 阅读 · 0 评论 -
MyBatis 精确控制:“确保币种存在”接口的SQL智慧与幂等性实践 ✨
摘要:本文探讨了如何利用MyBatis实现确保币种存在的幂等性接口。通过MyBatis Mapper XML精细控制SQL操作,对比JPA方式展示了不同的技术实现路径。核心包含前端DTO、后端预定义币种数据、MyBatis映射文件配置以及Service层逻辑,强调了对数据准确性和一致性的保障。文章详细解析了从接口设计到SQL语句编写的完整流程,为开发者提供了MyBatis环境下处理基础数据存在性检查的实践方案。原创 2025-06-18 14:29:52 · 341 阅读 · 0 评论 -
MyBatis 精雕细琢:会员管理后台接口的 SQL (Structured Query Language, 结构化查询语言) 掌控与实现!!!
MyBatis实现会员管理接口:SQL精确控制与高效实现 本文详细介绍了如何将Spring Data JPA实现的会员管理后台接口迁移到MyBatis框架,重点对比了两种技术的差异,并展示了MyBatis在SQL控制方面的优势。主要内容包括: 技术对比:通过表格清晰对比JPA和MyBatis在核心功能、SQL编写、数据访问层等方面的差异,凸显MyBatis对SQL的精细控制能力。 实现步骤: 定义Mapper XML文件,通过动态SQL标签实现条件查询 使用PageHelper插件实现分页功能 在Servi原创 2025-06-13 14:44:59 · 947 阅读 · 0 评论 -
MyBatis 精雕细琢:打造超级会员查询接口的 SQL (Structured Query Language, 结构化查询语言) 掌控与分页艺术!!!
MyBatis 实现会员分页查询接口摘要 本文详细介绍了使用 MyBatis 实现管理员查询会员列表接口的技术方案。通过动态 SQL 构建支持分页、排序和复杂搜索的查询功能,结合 MyBatis 分页插件和严格的权限控制。关键点包括: 参数处理 - 使用 PageWithSearch 类接收前端分页/排序/搜索参数 权限隔离 - 通过 AdminMiniProgramMapper 获取管理员可操作的小程序 ID 范围 动态查询 - 在 MemberUserMapper.xml 中编写灵活的动态 SQL 实现原创 2025-06-14 16:20:04 · 692 阅读 · 0 评论 -
MyBatis 精细操控:重构“获取我的小程序配置”接口,从 JPA (Jakarta Persistence API, Jakarta 持久化应用程序接口) 到 MyBatis 的实践之旅!!!
摘要:本文详细介绍了将"获取我的小程序配置"接口从JPA迁移到MyBatis的实践过程。文章对比了两种技术的关键差异,包括SQL编写方式、数据访问层架构和关联加载机制,突出了MyBatis在SQL精细控制方面的优势。迁移核心步骤包括定义Mapper XML文件、配置关联映射,并通过两个示例文件(AdminMiniProgramMapper.xml和MiniProgramConfigMapper.xml)展示了具体实现。该迁移在保持业务逻辑不变的前提下,实现了对数据库操作的更精准控制,为复原创 2025-06-12 19:59:15 · 1089 阅读 · 0 评论 -
MyBatis 精工细作:小程序专属积分规则管理的 SQL (Structured Query Language, 结构化查询语言) 掌控与实现!!!
本文探讨了从Spring Data JPA迁移到MyBatis实现小程序积分规则管理的方法。通过对比表格详细分析了两种技术栈在SQL编写、数据访问层、分页实现等关键方面的差异。文章重点介绍了MyBatis迁移的核心步骤,包括定义Mapper XML文件、使用动态SQL构建查询条件、实现分页功能,以及在Service层整合权限校验等业务逻辑。迁移保留了原有业务功能和API契约,同时MyBatis提供了更精细的SQL控制能力,便于针对特定数据库优化。文中还提供了具体的XML配置示例,展示了如何实现积分规则的CR原创 2025-06-14 15:23:41 · 830 阅读 · 0 评论 -
MyBatis 驾驭数据流:构建动态可搜索的用户积分流水接口 (含分页与排序)✨
🌊 MyBatis 积分流水查询接口实现摘要 本文将介绍如何使用 MyBatis 构建一个动态可搜索的用户积分流水查询接口,主要包含以下技术要点: 功能特性: 基于用户 ID 查询积分流水记录 支持分页和多字段排序 提供动态字段搜索能力 技术实现: 使用 PageWithSearch 类封装前端请求参数 通过 PointTransactionDto 进行数据展示层封装 利用 MyBatis 的动态 SQL 特性构建条件查询 采用 resultMap 和 association 处理关联数据映射 核心优势:原创 2025-06-16 21:08:51 · 905 阅读 · 0 评论 -
MyBatis 实战:重构积分配置保存接口,从 JPA (Jakarta Persistence API, Jakarta 持久化应用程序接口) 到 MyBatis 的平滑迁移!!!
本文介绍了如何将积分配置保存接口从JPA迁移到MyBatis的技术实践。通过对比两种框架在SQL控制、数据访问层、事务管理等方面的差异,详细说明了迁移过程中的关键考量。文章重点展示了MyBatis Mapper XML文件的配置方法,包括resultMap定义和SQL语句编写,实现了与原来JPA相同的业务功能。迁移后获得了更灵活的SQL控制能力,同时保持了Spring的事务管理机制。原创 2025-06-12 18:17:15 · 890 阅读 · 0 评论 -
MyBatis 精雕细琢:用户注册积分发放的 SQL (Structured Query Language, 结构化查询语言) 掌控与实现 (含邀请奖励)!!!
本文探讨了如何通过MyBatis实现用户注册积分发放功能,包括邀请奖励机制。相比JPA方案,MyBatis通过手动编写SQL提供了更精细的控制权。文章系统性地回顾了核心功能需求,对比了JPA与MyBatis实现的关键差异,并详细介绍了迁移步骤。 关键实现包括:1)定义Mapper XML文件处理积分规则查询、用户数据操作;2)编写精确的SQL语句实现积分发放逻辑;3)保持Service层业务逻辑不变,仅替换持久层实现;4)确保事务完整性。MyBatis方案特别适合需要精细控制SQL性能或已采用MyBatis原创 2025-06-14 20:39:32 · 1026 阅读 · 0 评论 -
Parameter index out of range (2 > number of parameters, which is 1)【已解决】
MyBatis XML注释导致SQL参数绑定异常 摘要:在SysLogMapper.xml文件中,SQL语句内添加的注释导致了MyBatis参数绑定异常。错误表现为"Parameter index out of range",原因是MyBatis将SQL注释中的"#"符号误认为参数占位符进行处理。当执行查询时,系统尝试绑定不存在的第二个参数,引发类型转换异常。解决方法为移除SQL语句内部的注释(/.../形式),仅保留XML注释(<!--...-->)。该原创 2024-07-25 19:03:53 · 2260 阅读 · 0 评论 -
MyBatis持久层框架(简介,日志框架扩展,基本使用,多表映射,动态SQL,高级扩展,mybatis总结)
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。原创 2023-12-19 15:38:24 · 1624 阅读 · 0 评论 -
mybatis高级扩展-插件和分页插件PageHelper
拦截SQL查询:PageInterceptor是PageHelper的核心类,它负责拦截SQL查询,并在拦截到的SQL查询上添加分页相关的SQL片段。配置分页方言:helperDialect属性用于指定数据库的分页方言。在这里,它被设置为"mysql",意味着PageHelper会为MySQL数据库生成正确的分页SQL。如果你使用的是其他数据库,如Oracle、SQL Server等,你需要选择相应的分页方言。原创 2023-12-15 17:02:47 · 258 阅读 · 0 评论 -
mybatis高级扩展-批量映射优化-mappers标签中使用package批量注册的前提条件
Mapper 配置文件很多时,在全局配置文件中一个一个注册太麻烦,希望有一个办法能够一劳永逸。Mybatis 允许在指定 Mapper 映射文件时,只指定其所在的包:此时这个包下的所有 Mapper 配置文件将被自动加载、注册,比较方便。Mapper 接口和 Mapper 配置文件名称一致。可以将mapperxml文件放在mapper接口所在的包!也可以在sources下创建mapper接口包一致的文件夹结构存放mapperxml文件原创 2023-12-14 15:40:59 · 290 阅读 · 0 评论 -
mybatis动态SQL-sql片段
SQL片段的作用是将重复的SQL语句抽取出来,放到标签中,可以进行复用。这个SQL片段类似于代码片段,可以将部分SQL语句打包或封装到一个SQL片段里。使用SQL片段可以减少SQL语句冗余,便于SQL语句的维护和管理,类似于Java的方法,可以复用SQL语句。原创 2023-12-14 15:10:42 · 795 阅读 · 2 评论 -
mybatis动态SQL-foreach
: MyBatis 的一个循环标签,用于遍历集合或数组。collection="empNoList": 指定要遍历的集合名为empNoList。item="employeeNumber": 在每次循环中,将当前元素的值赋给变量employeeNumber。open="("和close=")": 定义了循环开始和结束时添加的文本内容,分别为开括号和闭括号。separator=",": 定义了循环中每个元素之间的分隔符,这里是逗号。原创 2023-12-14 14:45:48 · 448 阅读 · 0 评论 -
mybatis动态SQL-choose-when-otherwise
在多个分支条件中,仅执行一个。- 从上到下依次执行条件判断- 遇到的第一个满足条件的分支会被采纳- 被采纳分支后面的分支都将不被考虑- 如果所有的when分支都不满足,那么就执行otherwise分支原创 2023-12-13 21:11:09 · 689 阅读 · 0 评论 -
mybatis动态SQL-trim
prefixOverrides:此属性用于指定要移除的字符串前缀。当在元素中使用此属性时,它会移除所有指定的前缀。suffixOverrides:此属性用于指定要移除的字符串后缀。当在元素中使用此属性时,它会移除所有指定的后缀。原创 2023-12-13 20:45:56 · 406 阅读 · 0 评论 -
mybatis动态SQL-<set><if test=“Java对象的属性“!=null>数据库表中的字段 运算符 #{Java对象的属性}</if></set>where 表达式
这个命名空间属性是Mybatis用来查找映射器接口的依据。Mybatis将扫描指定命名空间所在的包(以及子包),并查找具有指定命名空间的接口。一旦找到匹配的接口,Mybatis将为该接口创建代理实例,用于执行SQL语句并与数据库进行交互。在Mybatis中,元素用于定义一个映射器接口,它与数据库交互以执行SQL查询和更新。在你的示例中,元素的命名空间属性指定了映射器接口的完全限定名,即com.atguigu.mybatis.mapper.EmpMapper。原创 2023-12-12 18:38:42 · 279 阅读 · 0 评论 -
mybatis动态SQL-<where><if test=“Java 对象的属性“!=null>数据库表中的字段 运算符 #{Java对象的属性}</if></where>
在Mybatis中,使用动态SQL可以很方便地根据参数值的变化来构建查询条件。其中,"where"和"if"是常用的元素,可以用于动态地构建SQL语句。总之,在使用Mybatis的动态SQL时,需要注意参数类型、参数安全性、多条件查询、条件顺序、空值处理和异常处理等方面,以确保查询的正确性和安全性。传入的参数与SQL语句中的列名和数据类型匹配。避免在SQL语句中直接拼接字符串。原创 2023-12-12 10:11:28 · 471 阅读 · 0 评论 -
mybatis多表映射-延迟加载,延迟加载的前提条件是:分步查询
当lazyLoadingEnabled设为true时,这些框架会采用延迟加载策略。这意味着 只有在需要数据的时候,它们才会去数据库获取数据,而不是在查询时立即加载所有数据。这种策略可以节省系统资源,特别是当处理大量数据时,因为它可以减少内存的使用和数据库查询的次数。然而,需要注意的是,延迟加载也有其缺点。由于数据是按需加载的,因此初次加载数据时可能不会立即得到所有数据。这可能会导致在需要的时候数据还未准备好,从而影响用户体验。因此,是否应该使用延迟加载需要根据具体的应用场景和需求来决定。原创 2023-12-11 20:42:19 · 735 阅读 · 0 评论 -
mybatis多表映射-使用resultType实现对一关联,小技巧
在MyBatis中,映射接口的实例对象是通过 Java的动态代理技术 创建的。具体来说,当你调用sqlSession.getMapper(BookMapper.class)时,MyBatis会内部使用JDK的动态代理技术(通过Proxy.newProxyInstance方法 )来创建一个实现了BookMapper接口的代理对象。这个代理对象并不直接实现BookMapper接口中的方法,而是将方法调用委托给MyBatis的映射器(Mapper)实现类来处理。原创 2023-12-11 19:45:56 · 265 阅读 · 0 评论 -
mybatis多表映射-分步查询
是 MyBatis 配置文件中的一个设置项,用于控制 自动映射行为 。MyBatis 是一个 Java 的持久层框架,它允许你使用 SQL 语句来操作数据库,并将结果映射到 Java 对象上。在 MyBatis 中,你可以使用元素来定义结果映射规则,指定如何将数据库的结果集映射到 Java 对象上。然而,为了简化配置,MyBatis 提供了自动映射的特性,可以自动将结果集的列名映射原创 2023-12-11 18:56:28 · 478 阅读 · 0 评论 -
mybatis多表映射-使用resultMap和association实现对一关联
在MyBatis中,"association"是一个关键字,用于描述一个对象关系映射(ORM)中的一对一(1:1)或者一对多(1:n)关系。它通常用于处理实体类之间复杂的关系。原创 2023-12-10 23:54:19 · 877 阅读 · 0 评论 -
mybatis多表映射-对多关联
在MyBatis中,标签用于表示一个 集合的映射 ,它通常被用在 联合查询 中,以处理一对一、一对多、多对一等复杂的数据库表关系。例如,如果你有一个用户表(user),每个用户可以有多个订单(order),那么在MyBatis的映射文件中,你可能会使用标签来处理这种一对多的关系。下面是一个简单的示例:原创 2023-12-10 23:13:19 · 393 阅读 · 0 评论 -
[23000][1452] Cannot add or update a child row: a foreign key constraint fails,添加外键时报错,解决办法。
外键的存在主要是为了维护数据的 一致性 和 完整性 。外键是用来控制数据库中数据的完整性,它允许对一个表中的数据进行操作时,关联的其他表的数据也能同时发生改变。外键字段的值必须在被引用的表的主键字段中存在,除非该字段的值为NULL(如果允许的话)。这种约束防止了无效的数据引用,例如防止引用不存在的记录,从而确保了数据的完整性和准确性。总的来说,外键的存在是为了保证数据库中数据的一致性和完整性,防止无效的数据引用。原创 2023-12-09 14:35:15 · 2301 阅读 · 2 评论 -
mybatis数据输出-使用resultMap标签定义实体类属性和数据库字段对应关系,再在SQL语句中引用这个对应关系
ResultMap 是 MyBatis 中的一个重要元素,它用于映射 SQL 查询结果到 Java 对象。ResultMap 定义了结果集的映射规则,包括如何将数据库表中的列映射到 Java 对象的属性。ResultMap 的主要目的是提供一种灵活且强大的方式来将数据库查询结果映射到 Java 对象,而不需要手动将每一行结果转换为 Java 对象。通过 ResultMap,MyBatis 可以自动处理结果集的映射过程,使得开发人员能够更专注于编写业务逻辑。原创 2023-12-08 20:39:30 · 1166 阅读 · 0 评论
分享