news 2026/5/19 1:28:04

MyBatis-Plus从入门到实战,Lambda查询+注解配置+SpringBoot整合全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis-Plus从入门到实战,Lambda查询+注解配置+SpringBoot整合全解析

MyBatis-Plus从入门到实战,Lambda查询+注解配置+SpringBoot整合全解析

目录

  • 1 什么是Mybatis-Plus
    • 1.1 什么是mybatis-plus
    • 1.2 官方愿景
    • 1.3 特性
    • 1.4 支持数据库
    • 1.5 框架结构
  • 2 快速入门
    • 2.1 创建springboot项目
      • 2.1.1 并引入依赖
      • 2.1.3 编写配置文件
    • 2.2 创建数据库以及表结构
    • 2.3 开发实体类
    • 2.4 开发mapper通用实现
    • 2.5 测试
  • 3 常用注解说明
    • 3.1 @TableName注解
    • 3.2 @TableId注解

1 什么是Mybatis-Plus

1.1 什么是mybatis-plus

MyBatis-Plus (opens new window)(简称 MP)是一个MyBatis(opens new window)的增强工具, 在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。
  • 官方文档链接 [[MyBatis-Plus (baomidou.com)

1.2 官方愿景

1.3 特性

无侵入: 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小: 启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作 强大的CRUD操作: 内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更 有强大的条件构造器,满足各类使用需求 支持Lambda形式调用: 通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成: 支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 支持ActiveRecord模式: 支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere ) 内置代码生成器: 采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代 码,支持模板引擎,更有超多自定义配置等您来使用 内置分页插件: 基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询 分页插件支持多种数据库: 支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 内置性能分析插件: 可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询 内置全局拦截插件: 提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

1.4 支持数据库

mysql 、 mariadb 、 oracle 、 db2 、 h2 、 hsql 、 sqlite 、 postgresql 、 sqlserver

1.5 框架结构

2 快速入门

2.1 创建springboot项目

2.1.1 并引入依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency>
注意: 不需要在引入mybatis的相关依赖,只引入这一个即可,当然数据库相关的驱动还的显式引入
2.1.3 编写配置文件
#数据源配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3308/shiro?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=huang #mybatis-plus映射文件配置 mybatis-plus.type-aliases-package=com.huang.entity mybatis-plus.mapper-locations=classpath:mapper/*.xml

2.2 创建数据库以及表结构

DROPTABLEIFEXISTS`user`;CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(255)DEFAULTNULL,`age`int(11)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;SETFOREIGN_KEY_CHECKS=1;

2.3 开发实体类

@Data//lombok的注解用来生成get set 等相关方法publicclassUser{privateStringid;privateStringname;privateIntegerage;}

2.4 开发mapper通用实现

import com.baomidou.mybatisplus.core.mapper.BaseMapper; //提供了各种CRUD方法 public interface UserDAO extends BaseMapper<User> { }

2.5 测试

@Autowired private UserDAO userDAO; @Test void contextLoads() { List<User> users = userDAO.selectList(null); System.out.println(users); }

3 常用注解说明

3.1 @TableName注解

描述:用来将实体对象与数据库表名完成映射 修饰范围:用在类上 常见属性: value:String类型,指定映射的表名 resultMap:String类型,用来指定XML配置中resultMap的id值 @Data //lombok的注解用来生成get set 等相关方法 @TableName(value = "user") public class User { private String id; private String name; private Integer age; }

3.2 @TableId注解

描述: 主键注解 修饰范围: 用在属性上 常见属性: value:String类型,指定实体类中与表中对应的主键列名 type:枚举类型,指定主键生成类型
AUTO(0),NONE(1),INPUT(2),ASSIGN_ID(3),ASSIGN_UUID(4),/** @deprecated */@DeprecatedID_WORKER(3),/** @deprecated */@DeprecatedID_WORKER_STR(3),/** @deprecated */@DeprecatedUUID(4);

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 1:22:03

Lingtrain Aligner:用AI智能构建高质量平行语料库的终极指南

Lingtrain Aligner&#xff1a;用AI智能构建高质量平行语料库的终极指南 【免费下载链接】lingtrain-aligner Lingtrain Aligner — ML powered library for the accurate texts alignment. 项目地址: https://gitcode.com/gh_mirrors/li/lingtrain-aligner 在当今多语言…

作者头像 李华
网站建设 2026/5/19 1:20:38

免费降AI工具靠谱吗?2026实测5款辅助神器帮你稳过答辩

现在各平台对AIGC检测越来越严&#xff0c;降低ai率也成了毕业生要跨过的一道坎。为了不让大家在临近交稿时手忙脚乱&#xff0c;我花了一周时间测试&#xff0c;整理了一些手动降AI技巧以及5款市面上常见的降ai率工具的测试感受&#xff0c;希望能帮大家少走些弯路。 一、检测…

作者头像 李华
网站建设 2026/5/19 1:17:10

FPGA边缘计算中的延迟反馈储层系统优化实践

1. FPGA边缘计算中的延迟反馈储层系统解析在工业物联网和实时信号处理领域&#xff0c;时间序列预测一直面临着计算延迟和能效瓶颈的双重挑战。传统神经网络解决方案往往需要庞大的计算资源&#xff0c;难以在资源受限的边缘设备上实现实时响应。储层计算&#xff08;Reservoir…

作者头像 李华
网站建设 2026/5/19 1:16:31

Grafana 令牌被盗,GitHub 环境可遭访问且代码库被下载

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01;编译&#xff1a;代码卫士Grafana 披露称&#xff0c;一个“未经授权方”获取了一个令牌&#xff0c;能够访问公司的 GitHub 环境并下载代码库。Grafana 在 X 平台上发布帖子中表示&#xff1a;“我们的调查认定&…

作者头像 李华
网站建设 2026/5/19 1:13:58

CXL架构下的联邦一致性模型设计与优化

1. 分布式内存架构的缓存一致性挑战在传统多核处理器架构中&#xff0c;缓存一致性&#xff08;Cache Coherence&#xff09;是确保计算正确性的基础机制。通过MESI&#xff08;Modified, Exclusive, Shared, Invalid&#xff09;等协议&#xff0c;系统维护着多级缓存之间的数…

作者头像 李华