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

Mybatis和MybatisPlus的对比区分理解法

首先,我们需要承认的是MybatisPlus是Mybatis的进阶版本,在原有的基础上只做增强不做改变,这点从依赖传递的角度上去讲解,我们在pom文件中导入了MybatisPlus的依赖,就不需要引入Mybatis的依赖了。先让我们对这两者进行区分并理解。

Mybatis: 首先在Mapper定义一个Mapper接口,需要在上面添加一个@Mapper接口,声明当前是一个Mapper接口,并且,程序在运行的时候会自动创建这个Mapper接口的bean对象,交给IOC容器。Mybatis可以对于简单的增删查改进行操作只需要配合SQL语句和相对应的增删查改的注解进行使用,对用需要动态加载的SQL语句,或者不是固定死的语句涉及了逻辑,这个时候我们就需要

使用XML映射文件,简单阐述一下XML映射文件的要求:一同包同名:需要自己定义一个XML映射文件,且映射文件的包名和文件名都要和Mapper层的Mapper接口一致。Xml的namespace需要和Mapper的全类名一致,SQL语句的ID要和Mapper接口的方法一致。在动态的SQL语句中涉及了两个符号一个是#号一个$   ,#的作用是占位符,最后会编译生?,性能高能够防止SQL注入,而$

是字符串拼接符,需要注意的是#和$不能放在引号中,这样会识别成字符串不能够起到作用。需要放在{}里面,动态的常用SQL语句  <where> ,<set>,<foreach>,<if test ></if>,其中需要注意的是foreach的应用场景是批量操作,例如批量增加或者批量删除。最后卸载XML文件中的ResultType和ResultMap的区别在于ResultType适合封装简单对象,而ResultMap查询的结果是复杂的对象,进行手动封装。

MybatisPlus,适用于简单的单表操作的增删查改,里面有很多的方法,只需要在Mapper层继承BaseMapper<E>,就可以实现单表的操作,包括他也有自己的单表操作Service层的方法,需要在Service接口上继承IService接口,并且在Service的实现类中继承IServiceImpl接口,然后在实体类需要注意的是字段名和属性名要符合一致,或者属性名是驼峰命名这样可以进行匹配。用到的注解

@TableName    @TableId    @TableField (如果数据库中没有该属性的字段,需要exist=false),最后在使用条件构造器的时候,推荐使用LambdaQueryWrapper,因为使用了方法引用。

http://www.xdnf.cn/news/17423.html

相关文章:

  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 给AI装上“翻译聚光灯”:注意力机制的机器翻译革命
  • Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比
  • 编程基础之字符串——统计数字字符个数
  • TypeScript 中的as const是什么?
  • React:useEffect 与副作用
  • token危机解决?扩散模型数据潜力3倍于自回归,重训480次性能仍攀升
  • 浏览器CEFSharp88+X86+win7 之多页面展示(四)
  • LLaMA-Adapter Efficient Fine-tuning of Language Models with Zero-init Attention
  • Redis - 使用 Redis HyperLogLog 进行高效基数统计
  • Spring Boot与WebSocket构建物联网实时通信系统
  • 基于Spring Boot和WebSocket的实时聊天系统
  • go语言运算符
  • 遇到前端导出 Excel 文件出现乱码或文件损坏的问题
  • Linux 管道命令及相关命令练习与 Shell 编程、Tomcat 安装
  • 基于Ubuntu20.04的环境,编译QT5.15.17源码
  • Lua语言元表、协同程序
  • JavaWeb(苍穹外卖)--学习笔记17(Apache Echarts)
  • LightGBM 与 GBDT 在机器学习中的性能与特点比较
  • Graph-R1:一种用于结构化多轮推理的智能图谱检索框架,并结合端到端强化学习
  • 【最后203篇系列】031 构建MCP尝试
  • Docker Compose 部署高可用 MongoDB 副本集集群(含 Keepalived + HAProxy 负载均衡)
  • 从零学习three.js官方文档(二)——图元
  • 去除Edge微软浏览器与Chrome谷歌浏览器顶部出现“此版本的Windows不再支持升级Windows 10”的烦人提示
  • JavaWeb(苍穹外卖)--学习笔记18(Apache POI)
  • 安全引导功能及ATF的启动过程(五)
  • 数据结构:栈和队列(Stack Queue)基本概念与应用
  • AI编程插件对比分析:CodeRider、GitHub Copilot及其他
  • 云服务器最新版MySQL 安装步骤
  • 第4章 程序段的反复执行1 for语句P115练习题(题及答案)