Java MyBatis 多表查询实战:一对一与一对多映射详解

本文深入解析Java MyBatis框架中的多表查询技术,重点讲解如何通过XML配置实现一对一(association)和一对多(collection)关联映射。结合学生、班级等实体模型,展示SQL编写、Mapper接口定义及测试结果输出,帮助开发者掌握复杂关系数据的持久层处理方案。

Java MyBatis 多表查询实战:一对一与一对多映射详解

MyBatis泛型失效与结果映射不一致问题及解决

本文分析MyBatis中DAO层泛型限制在运行时无效的原因,并详细介绍resultType与resultMap两种配置方法。重点讲解如何利用SQL别名和显式结果映射解决数据库列名与Java实体类属性名不一致导致的封装失败问题。

MyBatis SQL嵌套与括号解析问题及优化策略

本文针对MyBatis中SQL关联查询导致的数据重复以及多层括号(>3层)解析失败两个常见问题,提供具体解决方案。通过引入exists替代in、使用XML CDATA包裹特殊字符或深层嵌套SQL,可有效避免语法错误并提升执行效率。

MyBatis 调用存储过程获取返回值与结果集方案

本文详细介绍在 MyBatis 中调用存储过程的两种主要方式:通过 Map 集合获取 IN/OUT 参数返回值,以及直接执行 SQL 脚本获取结果集。重点解析 statementType="CALLABLE"配置、参数模式声明及多数据源切换注意事项,提供 Controller、Service、Mapper 层完整代码示例。

MyBatis中LIKE配合CONCAT实现安全模糊查询详解

本文详细介绍MyBatis中使用LIKE进行模糊查询的正确姿势。重点解析如何结合数据库函数CONCAT实现参数拼接,避免在XML中直接使用%#{name}%导致的SQL注入风险或语法错误。提供MySQL与Oracle下的具体代码示例及最佳实践,帮助开发者写出更安全、规范的SQL语句。

MyBatis Integer类型参数动态SQL判断陷阱与修复

在使用MyBatis编写动态SQL时,若参数为Integer类型,OGNL表达式对值0的处理常导致逻辑错误。原因为0会被解析为空字符串,导致!= ''判断失效。正确做法是仅使用!= null进行非空校验,避免引入空字符串比较,确保查询条件准确生效。

前端传参调用MyBatis执行MySQL存储过程及返回结果详解

本文详细介绍如何在前端传入参数,通过Java后端调用MyBatis执行MySQL存储过程并获取返回结果。涵盖存储过程创建、MyBatis XML中CALLABLE语句配置、Java层Service与Controller处理,以及Vue前端Axios接口请求与参数绑定方法,帮助开发者打通从UI输入到数据库执行的完整链路。

前端传参调用MyBatis执行MySQL存储过程及返回结果详解

MyBatis条件if test中使用枚举值的方法与陷阱

本文详解在MyBatis的if标签中如何使用枚举值进行条件判断。通过OGNL表达式@包名.枚举类@枚举成员.getName的方式实现,并指出嵌套类需使用$符号连接的正确语法。同时对比直接引用与调用方法的区别,提供避免ClassNotFoundException和NoSuchFieldException等常见错误的完整方案。

MyBatis条件if test中使用枚举值的方法与陷阱

MyBatis-Plus 设置字段为 null 的几种方法总结

本文总结了在 MyBatis-Plus 中强制更新数据库字段为 null 的四种方法。默认情况下 MP 会忽略 null 值,建议优先使用自定义 SQL 或 UpdateWrapper.set() 方法以保证数据安全;若使用 @TableField 注解或全局配置忽略策略,需谨慎处理以避免数据丢失风险。

MyBatis column属性详解:查询结果列名与实体属性的映射关系

在MyBatis开发中,许多人误以为column属性对应数据库表中的原始列名。实际上,它指向的是SQL查询返回的结果集列名。本文通过给字段添加别名导致字段为空的实验,演示如何利用resultMap将SQL别名映射到Java实体属性,解决数据无法自动封装的问题。

MyBatis column属性详解:查询结果列名与实体属性的映射关系