当前位置: 首页 > news >正文

第八章 MyBatis及MyBatis-Plus

第八章 MyBatis及MyBatis-Plus

1. 系统架构流程

执行过程:

  1. MyBatis配置:通过mybatis-config.xml文件进行全局配置,并在其中加载mapper XML文件。
  2. 构造SqlSessionFactory:基于配置信息创建会话工厂。
  3. 创建SqlSession:由会话工厂生成,用于数据库操作。
  4. Executor执行器接口:实现数据库操作,包括基本和缓存执行器。
  5. Mapped Statement对象:封装了MyBatis的配置信息及SQL映射信息。
  6. 输入参数映射:将Java对象映射至SQL语句中。
  7. 输出结果映射:将查询结果映射回Java对象。

2. 结果集映射

MyBatis支持XML配置和注解两种方式进行结果集映射。

  • 使用XML的方式
    • resultType: 直接指定类名。
    • resultMap: 处理复杂映射关系(如一对一、一对多等)。
  • 使用注解的方式
    • 使用@Select@Result配合定义查询与结果映射。

3. Mapper传参

Mapper接口中的方法可以接受多种类型参数(基本数据类型、Java对象、Map等),并可以通过以下方式传递参数:

  • 使用@Param注解指定参数名称。
  • 不使用@Param时,参数名称应为param1, param2等。
  • 对象或Map类型的参数可以直接使用其属性或key名称。

4. XML常用配置

  • 数据源配置:连接数据库的基本信息。
  • 映射器配置:指定映射器文件或接口的位置。
  • 类型别名配置:简化映射器文件中的类型引用。
  • 结果映射配置:定义SQL查询结果与Java对象间的映射关系。
  • SQL查询配置:编写SQL查询语句及参数、返回值类型等。
  • 参数传递配置:定义方法参数传递方式。

5. 缓存机制

MyBatis提供了两级缓存机制:

  • 一级缓存(Local Cache):默认开启,作用于同一个SqlSession内。
  • 二级缓存(Second Level Cache):跨SqlSession共享数据,默认关闭,需手动配置启用。

6. 分页插件

常用的分页插件有PageHelper和MyBatis Plus,它们都基于MyBatis拦截器实现。使用示例:

  • PageHelper

    PageHelper.startPage(页号, 页大小);
    
  • MyBatis Plus

    IPage<User> userPage = userService.page(new Page<>(页号, 页大小));
    

7. MyBatis-Plus常用API

MyBatis Plus扩展了MyBatis的功能,提供了一系列便捷的API来简化数据访问层的开发。具体的API列表请参考官方文档或相关资料链接。

扩展阅读

  • MyBatis 中文网文档
  • MyBatis Plus 官方文档
http://www.dtcms.com/a/409984.html

相关文章:

  • 5mins了解redis底层数据结源码
  • 华为云学习笔记(四):运维类服务与企业网站上云实践
  • 面向大模型输出的“耐脏” JSON 处理:从清洗到严格化的完整方案
  • 抢先注册网站域名卖掉英文网站建设服务合同
  • Apache、Nginx 和 Tomcat 的区别
  • 解决avue-input-tree组件重置数据不回显/重置失败
  • 苏州网站建设致宇网页设计制作手机网站
  • Kimi-VL:月之暗面开源的视觉语言模型
  • Buck电路项目实战:从原理到实战全解析
  • 如何读懂Mach-O:构建macOS和iOS应用安全的第一道认知防线
  • 远程录制新体验:Bililive-go与cpolar的无缝协作
  • 购物网站制作样例糖果网站建设策划书模板
  • 百度新闻源网站故乡网站开发的意义
  • PortSwigger靶场之Exploiting server-side parameter pollution in a query string通关秘籍
  • OpenLayers地图交互 -- 章节十三:拖拽旋转交互详解
  • 前端常见安全问题都有哪些以及解决方案
  • 算法专题(三)01背包问题理论
  • pycharm 运行不报错,但是调试报错,
  • 原型模式了解
  • 基于hive和mapreduce的地铁数据分析及可视化_hive作为数据库
  • 使用虚幻引擎(UE5)制作开箱爆金币功能
  • 网站在线考试答题系统怎么做泰兴网页定制
  • 展示型商城订单网站建设网页设计网站方案
  • 【MySQL数据库】InnoDB实现MVCC(多版本并发控制)底层原理
  • 自己做网站推广关键词网站开发和合同
  • 【Qt开发】输入类控件(二)-> QTextEdit
  • 攻克音频顽疾:基于QCC3095/QCC5181/QCC3040实现全域无冲击声的实战分享
  • 视频融合平台EasyCVR构筑智慧交通可视化管理与智能决策中枢
  • 从特征到应用:用 dlib+OpenCV 实现实时疲劳检测(基于眼睛纵横比)
  • 【买机器人,上BFT】北京大学联合项目 论文解读 | H2R:一种用于机器人视频预训练的人机数据增强技术