首页 > 其他分享 >MyBatis-Plus详解

MyBatis-Plus详解

时间:2023-09-05 21:44:24浏览次数:31  
标签:支持 查询 详解 Plus SQL MyBatis 主键

MyBatis-Plus是一个功能强大、易于使用的MyBatis增强工具,在MyBatis的基础上只做增强不做改变,它提供了许多实用的功能和扩展,可以极大地简化和提高开发效率。

特性

l 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

l 损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作

l 强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求

l 支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件,无需再担心字段写错

l 支持主键自动生成:支持多达4种主键策略(内含分布式唯一ID生成器-Sequence),可自由配置,完美解决主键问题

l 支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操作

l 支持自定义全局通用操作:支持全局通用方法注入(Writeonce,useanywhere)

l 内置代码生成器:采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码,支持模板引擎,更有超多自定义配置等您来使用

l 内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询

l 分页插件支持多种数据库:支持MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer等多种数据库

l 内置性能分析插件:可输出SQL语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

l 内置全局拦截插件:提供全表delete、update操作智能分析阻断,也可自定义拦截规则,预防误操作

 

功能:

l CRUD操作的简化:MyBatis-Plus提供了一组简化的方法,使得执行常见的CRUD操作更加简单和便捷。例如,通过继承BaseMapper接口,您可以直接使用一些常用的方法,如insert、update、delete和select等,而无需手动编写SQL语句。

l 条件构造器:MyBatis-Plus提供了一种灵活的条件构造器,可以通过链式调用的方式构建复杂的查询条件。您可以使用它来构建动态查询,避免手动拼接SQL语句,提高代码的可读性和维护性。

l 分页查询:MyBatis-Plus提供了方便的分页查询功能,您可以通过简单的方法调用实现分页查询,并且支持多种数据库的分页查询方式。

l 逻辑删除:MyBatis-Plus支持逻辑删除功能,您可以通过在实体类中添加注解来标记逻辑删除字段,并且在查询时自动过滤已被逻辑删除的数据。

l 自动填充:MyBatis-Plus提供了自动填充功能,可以在插入或更新操作时自动填充指定的字段,例如创建时间、更新时间等。您可以通过实现MyMetaObjectHandler接口来自定义字段的填充逻辑。

l 乐观锁:MyBatis-Plus支持乐观锁功能,可以通过在实体类中添加注解来启用乐观锁,并在更新操作时自动判断版本号,避免并发更新冲突。

l 主键策略:MyBatis-Plus提供了多种主键策略,可以自动生成主键值。您可以选择使用数据库自增、雪花算法、UUID等主键策略。

l 动态表名:MyBatis-Plus支持动态表名功能,可以根据运行时的条件动态选择要操作的表名。

l SQL注入防护:MyBatis-Plus内置了SQL注入防护功能,可以在执行SQL语句时对参数进行安全检查,避免SQL注入攻击。

l 多租户支持:MyBatis-Plus提供了多租户支持,可以根据不同的租户ID自动过滤数据,实现数据隔离。

标签:支持,查询,详解,Plus,SQL,MyBatis,主键
From: https://www.cnblogs.com/hwj7/p/17680911.html

相关文章

  • Mybatisplus中如何使用databaseId来适配多种数据库
    Mybatisplus中如何使用databaseId来适配多种数据库当使用MyBatisPlus进行数据库访问时,我们可能会面临多数据库的情况,例如在同一个应用程序中同时使用MySQL和Oracle。在这种情况下,我们需要根据当前的数据库环境来选择执行相应的SQL语句。MyBatisPlus提供了一个名为databaseId的特......
  • MyBatis-Plus
    MyBatis-Plus(简称MP):是一个 MyBatis 的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作强大的CRUD操作:内置......
  • MyBatisPlus翻新bug记录
    今天把老项目翻新成使用MyBatisPlus.偶遇bug.LambdaUpdateWrapper<AddressBook>wrapper=newLambdaUpdateWrapper<>();wrapper.set(AddressBook::getIsDefault,0);wrapper.eq(AddressBook::getUserId,BaseContext.getCurrentId());addressBookMapper.update(null,wrapper)......
  • 【愚公系列】2023年09月 WPF控件专题 Calendar控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 深入解析 MyBatis 中的 <foreach> 标签:优雅处理批量操作与动态 SQL
    在当今的Java应用程序开发中,数据库操作是一个不可或缺的部分。MyBatis作为一款颇受欢迎的持久层框架,为我们提供了一种优雅而高效的方式来管理数据库操作。在MyBatis的众多特性中,<foreach>标签无疑是一个强大的工具,它使得在SQL语句中进行动态循环迭代变得轻而易举。本文将带您深入探......
  • MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
    最近在工作中,我们遇到了一个需求,甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标,我编写了一条SQL查询语句,并请求DBA协助导出数据。尽管工单数量并不多,只有3000多条,但每个工单都包含了大量的信息。DBA进行了多次导出操作,不幸的是,每次尝试导出都导致......
  • 掌握 MyBatis<choose>标签:优化动态查询条件的利器
    当谈到在Java应用程序中进行数据库访问时,MyBatis是一个备受欢迎的持久层框架。它的强大之处在于提供了灵活性和可定制性,使得数据库操作变得更加简便。在这篇文章中,我们将深入介绍MyBatis中的<choose>标签,它是一个有趣且功能强大的元素,用于在SQL映射文件中进行条件选择。MyBat......
  • nginx配置详解
    worker_processes设置worker的数量,Nginx的进程模型采用的是master、worker模式,一个master负责协调,多个worker负责与客户端交互。此处设置为auto即可events设置使用的模型和每个worker的连接数。Linux操作系统中模型建议使用epoll。worker的连接数通常设置为10240......
  • Spring源码分析(十二)ApplicationContext详解(中)
    上篇文章已经对ApplicationContext的一部分内容做了介绍,ApplicationContext主要具有以下几个核心功能:国际化借助Environment接口,完成了对Spring运行环境的抽象,可以返回环境中的属性,并能出现占位符借助于Resource系列接口,完成对底层资源的访问和加载接触了ApplicationEventPublishe......
  • $('.panel-collapse').on('show.bs.collapse', function () {})详解
    $('.panel-collapse').on('show.bs.collapse',function(){});这段代码是在使用jQuery来绑定事件。$('.panel-collapse')部分是一个选择器,它选择了当前页面上所有有panel-collapse这个类的元素。如果你在HTML中有这样的元素:<divclass="panel-collapse"></div>,那么这......