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

一篇文章带你了解MyBatis!!!

一、引言

在之前提到的三层架构:控制层controller、业务层service、持久层dao,里面的持久层,顾名思义:承担了数据持久化的核心职责;这篇文章讲述的是常用的持久层框架---MyBatis

二、入门程序

准备工作:创建springboot工程,引入MyBatis相关依赖;准备数据库表、实体类;在配置文件中配置数据库连接信息

编写代码:首先要创建一个Mapper接口并编写SQL语句,代表应用程序自动为该接口创建一个实现类对象,并且会自动将该实现类对象存入IOC容器中;其次要在测试类中实现该接口,如果想要查询数据,可以将数据封装到List<User>里面,最后输出封装对象即可

三、辅助配置

在idea里面配置MySQL数据库连接,这样我们在编写SQL语句时,可以看出该语句是否符合语法:

四、JDBC VS MyBatis

Properties:在准备工作中,JDBC每次都要编写用户名和密码(硬编码),而在mybatis里面写在了配置文件里,随用随取,只需要配置一次

Mapper接口:连接时从连接池里取就可以,而JDBC用完就要释放资源,下次用的时候再连接,造成资源浪费

五、数据库连接池

在进行对比时,提到了数据库连接池,来讲一下这个是什么

是一个容器,负责分配、管理数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

而在这个里面,多个用户拿连接,会出现拿着不使用的现象,会导致连接池里面的连接越来越少,因此出现了连接池遗漏问题;为解决这个问题,连接池会有一个时间限制,来避免这个现象

那既然连接池里面有现成的连接,我们该如何获取呢?这就用到了一个接口:

六、MyBatis---删除操作

用到了占位符,防止写死:#{}在终端会变成?类似于预编译

其中符号可以使用 # 和 $,两者区别:

七、MyBatis---添加操作

依旧使用占位符,来代表对象属性名,方法的参数是User,封装到User

八、MyBatis---修改操作

九、MyBatis---查询操作

在前面的增删改的函数里形参只有一个,不需要为方法参数起名字,会自动识别,但是如果有两个以上参数,需要对参数起名字,有两种情况

基于官方spring-boot框架下,可以不用添加@Param

其他框架下,需要使用@Param注解

http://www.jsqmd.com/news/614831/

相关文章:

  • 从“词元”到“符元”:Token 中文名背后的 AI 底层认知之争
  • 工业网关上线前必须做的7项压力测试,第4项让3家客户当场终止验收:PHP-FPM+Docker+K8s边缘集群压测黄金指标手册
  • Mistral 7B+Neo4j:零代码构建动态知识图谱的实战指南
  • 【量化交易】南微医学(688029)的短线投资机会分析(2026/04/09 上午盘中观察)
  • 别再死磕大卷积核了!用3x3小核+ShiftwiseConv,在ImageNet上跑出SOTA的保姆级解读
  • net::ERR_TOO_MANY_REDIRECTS
  • realme Q3 5G刷机全攻略:从TWRP到Magisk Root权限获取
  • WPF新手村教程(七)—— 终章(MVVM架构初见杀)俑
  • C++11 新特性 右值引用
  • 外卖霸王餐API接口架构设计思路分析
  • 2026年实验室耗材淘宝代运营公司排名前五专业深度测评 - 电商资讯
  • 分享免费的PDF 翻译 原格式
  • 揭秘书匠策AI:毕业论文的“智慧魔法棒”
  • 【26最新大英赛】2012-2026年全国大学生英语竞赛ABCD类历年真题及答案+核心词汇电子版PDF
  • 从0搭建你的第一个AI Agent
  • Agent Client Protocol 全景解析人
  • 如何解决网页图片格式转换难题?这款Chrome扩展让效率提升3倍
  • ArcGIS空间连接实战:如何高效挂接地图斑属性到mdb数据库
  • 2026年专业深度测评:鲜花绿植淘宝代运营公司排名前五权威榜单 - 电商资讯
  • 我好像会被 Agent 淘汰,我用数据算了一算峙
  • AI Agent 跑完任务怎么通知你?我写了个微信推送服务土
  • 考研英语一历年真题及答案PDF电子版(1998-2026年)
  • PixelMentor:一个开源网站 · 调用AI视觉能力分析图片 · 提供影视后期修改意见缎
  • 2026年天津发电机出租公司最新推荐绑榜单:天津发电车租赁、大型发电机出租、 环保发电机出租、柴油发电机出租、电源车出租公司选择指南 - 海棠依旧大
  • 蒙特卡洛积分效率翻倍:Halton与Hammersley低差异序列的Python实现详解
  • 绩效考核软件避坑实录:为什么你觉得绩效考核软件”不好用”
  • 2026 年度 GEO 服务商推荐:技术、合规、效果三大维度严选 - 速递信息
  • 深度解析TFTP与FTP:核心区别、工作原理与应用场景
  • 科研党必备:Python脚本批量下载DOI文献的保姆级教程(附避坑指南)
  • IDM永久使用开源解决方案:安全验证与实战指南