自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录知识、锤炼自我

Spring、Spring Boot、Spring Cloud、DevOps、Redis、Mysql、微服务、云原生、大数据.....你想要的这里都有

  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 原创 Mybatis-Plus入门系列(12)- MybatisPlus之IService接口CRUD详解

简介Plust提供了一个顶级IService ,封装了很多CRUD操作,实际使用时,推荐直接在service层调用,Mapper:采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,泛型 T 为任意实体对象建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类对象 Wrapper 为 条件构造器插入Saveboolean save(T

2021-03-31 18:39:46 4976

原创 Mybatis-Plus入门系列(11)- MybatisPlus之Sql注入器及源码分析

简介什么是sql注入器/** * SQL 自动注入器 * * @author hubin * @since 2018-04-07 */public abstract class AbstractSqlInjector implements ISqlInjector { private static final Log logger = LogFactory.getLog(AbstractSqlInjector.class); /** * 检查SQL是否注入(已

2021-03-31 13:45:13 1662

原创 Mybatis-Plus入门系列(10)- MybatisPlus之自动填充功能

前言必要性:在实际开发中,设计数据库表时,通常都会添加公共字段,比如创建时间、操作人、更新时间等。而这些阿里巴巴规范:建表规约9【强制】表必备三字段:id, gmt_create, gmt_modified。说明:其中 id必为主键,类型为 unsigned bigint、单表时自增、步长为 1。gmt_create,gmt_modified的类型均为 date_time类型,前者现在时表示主动创建,后者过去分词表示被动更新。MybatisPlus自动填充Plus提供了MetaObjectHa

2021-03-30 17:03:04 2686

原创 Mybatis-Plus入门系列(9)- MybatisPlus之逻辑删除

概念什么是逻辑删除逻辑删除:假删除。将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录。数据库实现思路:插入数据时,标记为未删除状态;查询、修改时,只获取未删除状态的数据进行操作;删除时则更新删除状态为已删除,则可实现逻辑上删除,物理上任存在数据功能。参考阿里巴巴开发规范表达逻辑删除的字段名为 is_deleted,1 表示删除,0 表示未删除。测试案例在表中添加is_deleted字段,并设置默认值为0,实体类添加逻辑删除字段并添加 @TableLo

2021-03-30 13:11:24 2887

转载 Nacos系列(14)-Nacos2.0正式发布,性能提升10倍

继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构建起强大的生态。但是随着用户深入使用,逐渐暴露一些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,时隔半年我们终于将其全部实现,实测性能提升 10 倍,相信能满足所有用户的性能需求。Nacos 简介Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它孵化于阿里巴巴,成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。Nacos 2.0 架构全新 2.0 架构

2021-03-30 11:09:55 2706 4

转载 数据库系列(4)-关系型数据库基本术语

前言关系模型的数据结构非常简单,只包含单一的数据结构。即关系。在关系模型中,现实世界的实体以及实体间的各种联系,均是使用关系来表示。在用户看来,关系模型是把数据库表示为数据的集合,且关系数据库 是以二维表格的形式组织数据,例如表2.1就是一张记录学生基本信息的二维表格,该表格为学生基本信息登记表。基本术语1. 表(table)表,也称为关系,是一个二维的数据结构,它由表名、构成表的各个列(如学号,姓名,性别,出生日期等)及若干行数据(各个学生的基本信息)组成。每个表有一个唯一的表名,表中每一行数据

2021-03-28 22:55:02 3502

原创 数据库系列(3)-Mariadb配置文件及存储目录解析

数据库系列1.数据库概念及常用数据库介绍2.Mariadb简介及不同系统安装文章目录数据库系列一.前言默认配置文件二、存储目录一.前言默认配置文件默认安装时,会在/etc目录下生成my.cnf文件及my.cnf.d文件夹用于存放数据库配置。my.cnf : 主配置文件## This group is read both by the client and the server# use it for options that affect everything## 表示客

2021-03-26 16:25:15 10096

原创 数据库系列(2)-Mariadb简介及不同系统安装

简介MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。最新稳定版本:MariaDB 10.5.9, 10.4.18, 10.3.28, 10.2.37安装官网下载地址可根据自己的系统及架构选择好版本下载安装包进行安装阿里云YUM仓库地址使用rpm包安装时,可以去阿里云镜像站下载或者在线安装。X84_64/Centos7在线安装卸载自带mariad

2021-03-26 13:59:56 918

原创 数据库系列(1)- 数据库概念及常用数据库介绍

概念数据:DB :数据库系统(DBS): 朱啊哟提供应用数据的组织、存储、维护、访问等数据管理功能的系统DBMS:数据库系统,成型于上个世纪80年代,是计算机领域三大基础软件系统之一。数据库排名:https://hellogithub.com/report/db-engines/?url=/periodical/volume/14/数据库不仅仅有我们平时学到的关系型数据库,还有键值(Key-Value)数据库、列存储数据库、文档数据库和搜索引擎等类型。下面本文将简单介绍一下各种类型的数据。

2021-03-26 10:54:56 940 1

原创 Mybatis-Plus入门系列(8)- MybatisPlus之sql性能规范插件IllegalSQLInnerInterceptor

前言IllegalSQLInnerInterceptor:不规范SQL拦截器。由于开发人员水平参差不齐,即使订了开发规范很多人也不遵守,SQL是影响系统性能最重要的因素,所以拦截掉不规范SQL语句。拦截SQL类型的场景:必须使用到索引,包含left join连接字段,符合索引最左原则如果因为动态SQL,bug导致update的where条件没有带上,全表更新上万条数据如果检查到使用了索引,SQL性能基本不会太差SQL尽量单表执行,有查询left join的语句,必须在注释里面允许该S

2021-03-22 11:50:06 4938 1

原创 Mybatis-Plus入门系列(7)- MybatisPlus之乐观锁插件OptimisticLockerInnerInterceptor

乐观锁并发控制:在计算机科学,特别是程序设计、操作系统、多重处理和数据库等领域,并发控制是确保及时纠正由并发操作导致的错误的一种机制。并发控制的基本单位是事务。数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观锁(Optimistic Locking):乐观锁假设数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回给用户错误的信息,让用户决定如何去做。乐观锁

2021-03-22 10:39:30 5040 1

原创 JSqlParser入门系列(4)-JSqlParser之SQL解析

前言JSqlParser可以解析SQL为JAVA对象,以便于获取SQL中的相关信息并进行修改。一般使用CCJSqlParserUtil工具类直接解析SQ;,根据SQL类型转换为增删改查对象,再获取或修改对象中相关信息。查询解析 /** * SQL 解析 * * @throws JSQLParserException */ @Test public void testSelectParser() throws JSQLParserExcep

2021-03-20 15:56:12 7080 4

原创 JSqlParser入门系列(3)-JSqlParser之WHERE、多表Join、函数构建SQL

前言JSqlParser支持WHERE及多表操作SQL构建。单表WHERE /** * 单表SQL查询 * * @throws JSQLParserException */ @Test public void testSelectOneTable() throws JSQLParserException { // 单表全量 Table table = new Table("test"); Se

2021-03-19 17:15:14 5591 5

原创 JSqlParser入门系列(2)-JSqlParser简单的增删改查SQL构建

前言JSqlParser可以通过Java代码进行SQL构建。案例@SpringBootTestpublic class JsqlparserTest { /** * 简单的构建单表查询 * * @throws JSQLParserException */ @Test public void buildSelectSql() throws JSQLParserException { Select select01 = Se

2021-03-18 16:42:59 2920

原创 JSqlParser入门系列(1)-JSqlParser简介及入门案例

简介JSqlParser是一个SQL语句解析器。它将SQL转换为Java类的可遍历层次结构。支持Oracle,SqlServer,MySQL,PostgreSQL等常用数据库。但各种数据库系统的SQL语法都在动态变化,可以解析某些(不是全部)。JSqlParser就是一个把SQL转换为JAVA对象操作的工具包,但是发现此类文章较少,文档也不太详细,所以写个系列博客供参考。GitHub地址入门案例添加pom <dependency> <

2021-03-18 16:41:55 17461 3

原创 Mybatis-Plus入门系列(6)- MybatisPlus之防止全表更新与删除插件BlockAttackInnerInterceptor

前言业务bug或者漏洞可能导致把整个表都更新或者删除,在生产环境中这是十分危险的事情,plus也考虑到了这一点,提供了防止全表更新与删除插件测试案例创建全表删除与更新接口,先测试发现可以删除或更新表所有数据 @GetMapping("deleteAll") public Object deleteAll() { int delete = orderTblMapper.delete(null); return "删除成功"; } @G

2021-03-15 18:16:44 11673 12

原创 Mybatis-Plus入门系列(5)- MybatisPlus之动态表名插件DynamicTableNameInnerInterceptor

动态表名描述: Sql查询时,动态的修改表名简单业务场景: 日志或者其他数据量大的表,通过日期进行了水平分表,需要通过日期参数,动态的查询数据。测试案例案例目标:根据传入的月份参数,动态的查询xx_月份的表复制几张表,并插入一些测试数据实现TableNameHandler接口public class MyTableNameHandler implements TableNameHandler { /** * @param sql 原始SQL

2021-03-15 16:38:25 11560 6

原创 Mybatis-Plus入门系列(4)- MybatisPlus之多租户插件TenantLineInnerInterceptor

前言SaaSSaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。SaaS服务通常基于一套标准软件系统为成百上千的不同客户(又称为租户)提供服务。这要求SaaS服务能够支持不同租户之间数据和配置的隔离,从而保证每个租户数据的安全与隐私,以及用

2021-03-15 14:53:56 14908 6

原创 Mybatis-Plus入门系列(3)- MybatisPlus之数据权限插件DataPermissionInterceptor

前言权限管理一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。分类DataPermissionInterceptor...

2021-03-15 10:48:21 22590 23

原创 Mybatis-Plus入门系列(2)- MybatisPlus之分页插件PaginationInnerInterceptor

前言MybatisPlus版本:3.4.2Plus源码中,分页插件相关代码位于mybatis-plus-extension包下。分页方言:众所周知,每个数据库都有自己的方言,比如MySQL 的分页是用关键字 limit, 而 Oracle 用的是 ROWNUM,dialects包下对匹配了众多数据的分页方言,比如 DB2、MySql、Oracle、SQLServer等。分页模型:采用Page作为统一的简单分页模型,封装了查询数据列表、总数、每页显示条数(默认 10)、当前页、排序字段信息等内容。

2021-03-13 22:30:20 9320

原创 Mybatis-Plus入门系列(1)- MybatisPlus插件简介

Mybatis插件Mybatis插件,实际上就是一个拦截器,应用代理模式,在方法级别上进行拦截。可以实现分页、SQL打印监控、公共字段赋值等功能,基本上可以控制SQL执行的各个阶段,如执行阶段,参数处理阶段,语法构建阶段,结果集处理阶段,具体可以根据项目业务来实现对应业务逻辑。public interface Interceptor { // 可从Invocation参数中拿到执行方法的对象,方法,方法参数,从而实现各种业务逻辑 Object intercept(Invocation invoca

2021-03-12 13:32:53 2474

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除