Mybatis-Plus
文章平均质量分 67
为简化开发而生~~
IT贱男
越努力,越幸运!
展开
-
MyBatis-Plus 高级功能 —— 多数据源配置
一、引言在我们实际业务开发中,难以避免需要同时涉及多个数据库,可能一个API中所需要的数据,往往是包含了多个数据库中的数据,这个时候我们就需要在项目运行中,切换数据源。 那为什么会有这篇文章呢,那是因为小编在使用mybatis-plus这个框架,明明一个多数据源配置很简单,但是网上其他博客着实太过于复杂了。从数据源配置,每一个数据源配置一个config类,还有需要自己实现AOP的,当时小编就在想mybatis-plus是为简化而生,怎么搞这么复杂。接下来不要眨眼,很快就实现了。二、具体实原创 2021-02-25 19:26:08 · 8538 阅读 · 2 评论 -
MyBatis-Plus 高级功能 —— 自定义通用方法
一、引言大家已知MP给大家提供了很多通用的方法,可以看看MP源码中DefaultSqlInjector这个类,在这个集合当中包含了都是通用方法类,如果想要使用自定义通用方法,也需要添加到这个集合当中。/** * SQL 默认注入器 * * @author hubin * @since 2018-04-10 */public class DefaultSqlInjector e...原创 2019-09-24 16:41:24 · 11577 阅读 · 0 评论 -
MyBatis-Plus 高级功能 —— 动态表名SQL解析器
一、引言先来说下动态名表在什么场景下需要使用呢?拿小编的实际项目来说,小编公司手里掌握着国内各个部分地区的医院患者数据,那么一个医院的患者的数据流量肯定是很大的,这个时候如果全部放在同一张表中,那么可想而知数据量的庞大。所以数据库设计的时候可以一家医院对应一张表,分开来存储,表中的列名都是一样的,只是表名不同。或者还可以做日志的存储,日志数据量也是很大的,可以分一个月对应一张表,比如:...原创 2019-09-23 11:24:48 · 20020 阅读 · 4 评论 -
MyBatis-Plus 高级功能 —— 多租户功能实现
一、引言小编先解释一下什么叫多租户,什么场景下使用多租户。多租户是一种软件架构技术,在多用户的环境下,共有同一套系统,并且要注意数据之间的隔离性。举个实际例子:小编曾经开发过一套H5程序,这套程序应用在不同医院的APP上,当医院患者下载医院APP,并且进入相对应的H5页面,APP则会把用户相关数据传输到小编这里。在传输的时候需要带上医院标识(租户ID),以便小编将数据进行隔离。当不...原创 2019-09-22 16:48:16 · 35683 阅读 · 12 评论 -
MyBatis-Plus 高级功能 —— SQL性能分析打印插件
一、引言在我们日常开发工作当中,避免不了查看当前程序所执行的SQL语句,便于程序员排忧解难呐。MP提供了两种方式,用于输出每条SQL语句及其执行时间,针对执行较长时间的SQL可以停止运行,有助于发现问题。这两种方式只适用于开发环境,不建议生产环境使用。二、性能分析插件该插件3.2.0以上版本移除,推荐使用第二种方式(执行SQL分析打印)方式。步骤一:在MP配置类中配置该...原创 2019-09-20 13:51:11 · 5426 阅读 · 8 评论 -
MyBatis-Plus 高级功能 —— 乐观锁插件
一、引言先来大概普及一下数据库锁的概念,以下解释来源网络部分悲观锁:时刻保持着一个悲观的态度,对谁都不信任,总想着别人会修改我的数据,所以为了防止别人修改,每次都会上锁,防止别人修改自己的数据。导致的后果就是每次想要拿到数据就必须要等待拿到锁,是一个很浪费时间的过程,如果访问量很大就是悲观锁一个致命的缺陷。乐观锁:乐观锁对这个世界都很乐观,对每个想要获取数据的操作,他都会认为大家不会对...原创 2019-09-19 16:09:15 · 1643 阅读 · 0 评论 -
MyBatis-Plus 高级功能 —— 实现逻辑删除
一、引言之前小编讲了MP从入门到核心功能的使用,接下来这几天小编会把MP在实际项目中,一些常用的高级功能给记录一下。高级功能分为:逻辑删除、自动填充、乐观锁插件、性能分析插件、多租户SQL解析器、动态表名SQL解析器、SQL注入器今天先来说说在MP中如何使用逻辑删除,逻辑删除小编就不过多介绍了,顾名思义就是通过逻辑判断的手段表示该条数据已删除。二、具体实现删除功能是项目中经常见...原创 2019-09-17 17:08:00 · 13832 阅读 · 11 评论 -
MyBatis-Plus 高级功能 —— 自动填充功能
一、引言小编先来解释下自动填充是做什么的,大家有没有在数据入库的时候,不管新增或者修改数据,都要手动来设置添加时间和修改时间。而且每个插入都需要设置,而且数据库还设置不能为空,就很烦恼。虽然可以在数据库设置默认值,但小编没得数据库表修改权限呐,那就从技术上来解决这个问题吧。 if (medicalProcedures.isEmpty()) { procedureConvert...原创 2019-09-18 15:11:25 · 10581 阅读 · 6 评论 -
MyBatis-Plus Wrapper条件构造器筛选不必要的字段
一、引言一天一眨眼就过去了,真是光阴似箭日月如梭呀。这个MP的Wrapper默认查询是查询全部的列,但是小编的需求是需要查询某几个列即可。当然MP也是提供了解决办法的。二、解决办法/** * 名字包含雨并且年龄小于40 * <p> * 只显示id、name 两列 */ @Test public void se...原创 2019-06-11 17:57:43 · 18716 阅读 · 5 评论 -
MyBatis-Plus Wrapper条件构造器查询大全
一、引言那么那么那么今天来说下MP中强大的条件查询功能。本章是基于上个案例来讲的:MyBaits-Plus 快速入门案例二、具体操作首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询。 /** * 通过单个ID主键进行查询 */ @Test public void selectById() { User use...原创 2019-06-11 16:50:44 · 87738 阅读 · 17 评论 -
MyBatis-Plus 代码自动生成器
一、引言在实际开发过程中,也难免需要生成一些基本的代码,也能大大的提高开发效率。那么那么那么小编也写了一个基本的代码生成器,包括实体、持久层、Service、Controller、xml二、引入依赖<!--mybatis plus代码生成器--><dependency> <groupId>com.baomidou</groupI...原创 2019-06-16 19:36:58 · 2536 阅读 · 13 评论 -
MyBatis-Plus 通用IService使用介绍
一、引言MP除了通用的Mapper还是通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共。其实按照MP的这种思想,可以自己也实现一些通用的Controller。今天是周天,作为一名码农来说,这里小编提醒大家周末有空还是多出去运动一下。生命在于运动,生命诚可贵。二、 小编瞎扯相信有和小编一样的朋友,在大城市独自漂泊,感觉就凭借自己内心那一点点的火苗,想要...原创 2019-06-16 19:21:04 · 156837 阅读 · 29 评论 -
MyBatis-Plus ActiveRecord模式的CRUD
一、引言ActiveRecord模式简单一点来说就是通过实体来进行对单表增删改查操作。说实话,这种操作方式小编之前确实还没见过,虽然这种方式在实际项目开发中还是有很多局限性的,但是如果说面试需要上机实现单表的增删改查,这种方式简直太简单了。emmmmm,那么就开始说说怎么使用吧。二、具体操作步骤一:Mapper对象要先继承BaseMapper对象/** * <p&...原创 2019-06-16 15:42:34 · 3918 阅读 · 1 评论 -
MyBatis-Plus 快速入门案例
一、引言学习MyBatis-Plus前提需要掌握:数据库相关操作、java等相关知识,最好熟悉Mybatis。那么本章就来讲解快速搭建MyBatis-Plus开发环境以及对数据库实际操作。二、准备工作步骤一:使用IDEA快速搭建SpringBoot项目,填写相关信息即可。步骤二:引入所需要maven依赖,小编这里有使用lombok依赖,有不了解的小伙伴可以自行学习一下,很简...原创 2019-06-10 17:34:57 · 6652 阅读 · 0 评论 -
MyBatis-Plus 入门简介
一、引言在开发项目时还在为编写或者生成基本的持久层接口和xml浪费时间?今天小编在搭建项目框架时考虑到,之前所开发的项目中都有大量的xml文件,以及大量重复的持久层CRUD接口。对于一个有代码洁癖的小编来说有点点受不了,那么就换一个持久层框架吧。那么问题来了,换什么呢?二、 mybatis与jpa对比这里有些同学可能对jpa不太了解,小编简单介绍。JPA是java持久层...原创 2019-06-10 17:04:59 · 16300 阅读 · 1 评论 -
MyBatis-Plus 分页查询以及自定义sql分页
一、引言分页查询每个人程序猿几乎都使用过,但是有部分同学不懂什么是物理分页和逻辑分页。物理分页:相当于执行了limit分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景。逻辑分页:一次性把全部的数据取出来,通过程序进行筛选数据。如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库...原创 2019-06-12 17:53:46 · 174144 阅读 · 57 评论 -
MyBatis-Plus 自定义sql语句
一、引言Good Good Study,Day Day Up,童鞋点个关注,不迷路,么么哒~~~原创 2019-06-12 15:55:39 · 106664 阅读 · 22 评论