介绍Mybatis-Plus

mybatis-plus优缺点 mybatis-plus 实践及架构原理。 立即下载

Mybatis-Plus是一个Mybatis的增强工具,在Mybatis的基础上,提供了一系列的实用功能,如物理分页、自动代码生成、性能分析、SQL注入器等等。Mybatis-Plus的目标是简化开发、提升效率、减少出错。

Mybatis-Plus的优点:

1.简化开发:Mybatis-Plus自动完成了增删改查的常规操作,大大缩短了开发周期。

2.提升效率:Mybatis-Plus提供了代码生成器,通过代码生成器可以快速生成Mapper、Service、Controller等常用文件,减少了大量重复工作。

3.减少出错:Mybatis-Plus提供了强大的条件构造器,避免了手写复杂的SQL语句,减少了出错的可能性。

4.性能优化:Mybatis-Plus提供了一系列的性能优化功能,如乐观锁、分页插件等。

Mybatis-Plus的使用:

1.引入依赖:

<!-- 引入Mybatis-Plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.x.x</version>
</dependency>

2.配置Mybatis-Plus:

@Configuration
@MapperScan("com.example.mapper")
public class MybatisPlusConfig {
    // 分页插件
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }
}

3.使用Mybatis-Plus:

3.1.实体类

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

3.2.Mapper

@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {
}

3.3.Service

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

3.4.Controller

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.getById(id);
    }

    @GetMapping("/list")
    public List<User> listUser() {
        return userService.list();
    }

    @PostMapping("")
    public Boolean addUser(@RequestBody User user) {
        return userService.save(user);
    }

    @PutMapping("")
    public Boolean updateUser(@RequestBody User user) {
        return userService.updateById(user);
    }

    @DeleteMapping("/{id}")
    public Boolean deleteUser(@PathVariable Long id) {
        return userService.removeById(id);
    }
}

4.使用Mybatis-Plus代码生成器

Mybatis-Plus提供了一个代码生成器,可以根据数据库表生成Mapper、Service、Controller等常用文件,大大简化了开发工作。

4.1.引入依赖

<!-- 引入Mybatis-Plus代码生成器 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.x.x</version>
</dependency>

4.2.配置文件

# 数据源配置
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root

# Mybatis-Plus配置
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted
      id-type: INPUT

# 代码生成器配置
generator:
  packageName: com.example
  tableNames:
    - user
  author: yonyou
  outputDir: ./src/main/java

4.3.代码生成器

public class CodeGenerator {
    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        gc.setAuthor("yonyou");
        gc.setOpen(false);
        gc.setFileOverride(true);
        gc.setServiceName("%sService");
        gc.setMapperName("%sMapper");
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.example");
        pc.setController("controller");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        pc.setMapper("mapper");
        pc.setEntity("entity");
        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setCapitalMode(true);
        strategy.setEntityLombokModel(true);
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setRestful(true);
        strategy.setEntityTableFieldAnnotationEnable(true);
        strategy.setLogicDeleteFieldName("deleted");
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setSuperMapperClass("com.baomidou.mybatisplus.core.mapper.BaseMapper");
        mpg.setStrategy(strategy);

        // 执行生成代码
        mpg.execute();
    }
}

5.总结

Mybatis-Plus是一个非常优秀的Mybatis增强工具,提供了一系列实用的功能,可以大大简化开发工作,提高开发效率。同时,Mybatis-Plus也提供了非常完善的文档,可以在使用过程中快速解决问题。

【白话系列】倍增算法 【序言】         我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。 【一】         从前,有一只可爱得不得了的小白兔,它想从 阅读详情

相关推荐

Netapp FAS2750更换磁盘后不同步问题处理

netapp fas2750磁盘更换后不同步问题处理

jetliu05的博客 1256

服务端架构:Mybatis-Plus的优缺点

前段时间帮朋友处理java后端架构问题,看到了mybatis-plus,其实早几年就知道这个东西,但一直没用没学,这两天许久未见的web服务看了看,聊聊个人感受 如有不适,请见谅 文章目录优点缺点1.对数据访问层DAO的上层入侵太强,入侵到service、甚至controller!2.数据查询代码复杂,最终SQL黑盒,不清晰,不利于业务性优化,不利于排查问题 优点 本文没有优点介绍,若要看到优点,自己去官方文档看吧,全是优点,明明白白 缺点 两大缺点足以限制其在大规模服务中使用:入侵Service和Co.

maoyuanming0806的博客 1万+

保姆级教程:在Ubuntu 22.04上用Conda搞定nuPlan数据集环境(Python 3.9 + PyTorch)

本文提供了一份详细的Ubuntu 22.04环境下使用Conda配置nuPlan自动驾驶数据集的保姆级教程,涵盖Python 3.9安装、Conda环境管理、PyTorch配置及数据集可视化验证等关键步骤,帮助开发者高效搭建开发环境。

weixin_29061997的博客 253

Mybatis 和 Mybatis Plus 优缺点

Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。MyBatis:Mybatis Plus:优点5、多种主键策略:支持多达4种主键策略(内含分布式唯一ID生成器),可自由配置,完美解决主键问题 。...

山路曲折盘旋,但毕竟朝着顶峰延伸 9543

5分钟搞懂超分算法:从插值到深度学习的实战对比(附Python代码)

本文系统对比了从传统插值到深度学习的主流超分算法,包括最近邻、双线性、双三次插值,以及基于边缘、统计模型和SRCNN、ESPCN、SRGAN等深度学习模型。通过实战代码和决策框架,帮助开发者根据图像质量、速度、资源等需求,快速选择最合适的超分辨率算法,实现从低清到高清的有效转换。

pp12345的博客 427

世界坐标系/相机坐标系/图像坐标系 转换

目录一、各坐标系简要介绍二、坐标系转换2.1 世界坐标系转为相机坐标系2.2 相机坐标系转为物理图像坐标系2.3 物理图像坐标系转为图像坐标系2.4 总结2.5 为什么要使用齐次坐标参考文献 一、各坐标系简要介绍 首先介绍数字图像处理领域中的图像坐标系,如上图左图所示,坐标系O_0为图像坐标系,其原点是在图像的左上角,每一个像素通过其所在位置的列数和行数索引 (u,v) 来表示。 另外需要建立图像坐标与物理单位的关系,而后才能将目标的真实世界坐标转换为图像坐标。即建立以物理单位表示的物理图像坐标系(有些文

流觞时光 1万+

MyBatis-Plus的优缺点?

MyBatis-Plus是基于MyBatis的增强工具,因此使用MyBatis-Plus需要熟悉MyBatis的使用对于不熟悉MyBatis的开发人员来说可能需要一些时间学习。:MyBatis-Plus的代码生成器可以自动生成大量的代码,但是有时候生成的代码可能不符合项目的需求,需要手动进行调整。:MyBatis-Plus的版本依赖于MyBatis的版本,因此需要注意版本的兼容性。:MyBatis-Plus提供了丰富的插件接口,能够自定义插件,实现自己的业务需求。

weixin_51291483的博客 744

一桶令牌的时间账本:四类限流算法的边界推演与Guava RateLimiter源码精读

限流的难点不在背出算法名,而在算清每一笔账:按哪一秒计数、超额请求排队还是拒绝、空闲后能否突发、集群总量如何约束。本文在可复现的虚拟时间实验台上对比固定窗口、滑动窗口、漏桶与令牌桶,实测边界双倍突发与分桶滑动的真实上界,拆解Nginx limit_req的千分位记账与延迟机制,纠正Resilience4j常被误称漏桶的说法,并逐行精读Guava SmoothRateLimiter的预消费、懒惰补账与预热积分,复刻迷你限流器与其完成七万次零差异对账,最后给出集群配额、分层防护与参数确定的方法。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 86万+

MyBatis-Plus介绍及基本使用

MyBatis-Plus介绍及基本使用

墨鸦的博客 1万+

slew dreate,slew threshold与transition计算

​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。

m0_61544122的博客 791

信号检测算法的MATLAB仿真:能量检测、循环平稳检测和匹配滤波检测

根据具体的应用场景和要求,选择合适的信号检测算法可以提高系统的性能和可靠性。在无线电通信中,信号检测是一项重要的任务,它用于检测和识别接收到的信号。在本文中,我们将介绍三种常用的信号检测算法:能量检测、循环平稳检测和匹配滤波检测,并提供相应的MATLAB源代码进行仿真实现。在上述代码中,我们首先设置了能量检测的阈值,然后生成了一个包含1000个服从正态分布的随机信号样本的信号。在上述代码中,我们首先设置了信号模板,然后生成了一个包含信号模板的信号样本。最后,通过比较相关性的最大值与阈值来判断信号是否存在。

PixelLancer的博客 1362

MyBatis 和 MyBatis-Plus 介绍及适用场景

介绍MyBatis是一个优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数及获取结果集的工作。与 Hibernate 这种全自动 ORM 框架不同,MyBatis 允许开发者通过简单的 XML 或注解来配置和映射原生类型接口和 Java POJO(Plain Old Java Objects)到数据库中的记录。特点简单易用:MyBatis 使 SQL 的编写和管理更加方便,开发者可以直接编写 SQL 查询。灵活性高。

qq_42631788的博客 1249

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案

伶俐角少儿编程 898

Mybatis-Plus介绍

MyBatis-Plus 官方文档MyBatis-Plus(简称 MP)是⼀个 MyBatis 的增强⼯具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

nine06的博客 1939

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Mybatis-Plus简单介绍

同时想要更多的详细信息,了解select提供的参数,可以访问官网了解:https://baomidou.com/guides/data-interface/#select。Mybatis-Plus简称MP,它是一个Mybatis的增强工具之一,在Mybatis的基础上只做增强不做改变,为简化开发而生。WRAPPER="ew",写上这个,是告诉Mybatis-plus,这个是Wrapper对象,并且它的参数固定名为。那么值得注意的是,查询出来的结果及其结果样式,与上篇文章查询的结果,区别不大,所以不做展示。

m0_75169015的博客 1042

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MyBatis-Plus介绍和使用

MP

weixin_38568503的博客 1万+

Mybatis和Mybatis Plus基础介绍

一、mybatis介绍 什么是Mybatis呢?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 二、mybatis批量插入用法 2.1 sql层面 单条插入数据的写法: INSERT

weixin_39240837的博客 1426

Mybatis-plus介绍及使用

mybatis-plus官方教程:https://mp.baomidou.com/guide/ Mybatis-plus介绍及使用1、Mybatis-plus简介2、Mybatis-plus坐标3、Mybatis-plus入门案例3.1、创建数据库,创建数据库表3.2、创建springboot工程3.3、引入入门项目所需的依赖3.4、配置数据库信息3.5、编写代码3.5.1、实体类:3.5.2、添加mapper3.5.3、启动类添加注解@MapperScan3.6、测试3.6.1、查询user表中所有数据3

qq_46112274的博客 4202

Mybatis-plus介绍

支持全局通用方法注入( Write once, use anywhere )。

doinmaker的博客 699

Mybatis-plus的介绍与使用

本文主要介绍了Mybatis-Plus相关的概念与使用,Mybatis-Plus大大简化了我们的开发,感兴趣的大佬看过来哟

小威的博客 8325

【Mybatis】Mybatis-plus使用介绍

MyBatis-Plus 是一款 MyBatis 的增强工具,在保留 MyBatis 核心功能的基础上,提供了更便捷的开发体验和丰富的功能支持。本文介绍了 MyBatis-Plus 的基本特性、快速上手步骤以及常见注解的使用方法。通过创建数据库表、搭建 SpringBoot 项目、定义实体类和 Mapper 接口,开发者可以快速实现单表的 CRUD 操作。文章还讲解了 @TableName、@TableField 等注解的作用,帮助开发者处理表名与字段名的映射关系。MyBatis-Plus 的简单配置和强大

2301_81614213的博客 2101

mybatis-plus 介绍

mybatis-plus 1、官方文档 https://baomidou.com/guide/sequence.html#spring-boot 2、MyBatis Plus 介绍 MyBatis-plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,引入 Mybatis-Plus 不会对现有的 Mybatis 构架产生任何影响,而且 MyBatis-plus 支持所有 Mybatis 原生的特性,为简化开发、提高效率而生。 3、MyBatis Plu

sinat_34338162的博客 1812

MyBatis-Plus 介绍

MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,简化开发、提高效率。无侵入:只增强不修改,与 MyBatis 完全兼容。CRUD 简化:内置通用 Mapper 和 Service,单表操作无需编写 XML。条件构造器:通过等实现动态 SQL。分页插件:支持多种数据库的分页查询,配置简单。代码生成器:自动生成实体类、Mapper、Service、Controller 等代码。乐观锁:通过@Version注解支持乐观锁机制。

qq_40464334的博客 349

SpringBoot中使用MyBatis-Plus详细介绍

在该接口中,提供了许多基本的sql增删改查方法,我们无需写sql语句,直接调用这些方法即可完成对数据的增删改查;

m0_74823878的博客 1886

(一)mybatis-plus详细介绍

注明 : 我写这篇mybaits-plus专栏主要是参考http://mp.baomidou.com/guide/这个中文文档进行的,目的是将此中文文档的内容和使用方法更加细致化的呈现给大家,让大家能更好的更快速更方便的掌握mybatis-plus。这里我只使用java语言进行讲解,通过springboot做案列分析结合maven管理工具进行演示。数据库使用mysql进行演示。那么童靴们咱们就开始...

木村的博客 5613
上一篇: 介绍Mybatis
下一篇: mybatis的使用案例
懒人刘
博客等级 码龄4年 541粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值