MybatisPlus最新代码生成器(3.5.1+)使用教程(3)

您所在的位置:网站首页 正则表达式生成器使用教程 MybatisPlus最新代码生成器(3.5.1+)使用教程(3)

MybatisPlus最新代码生成器(3.5.1+)使用教程(3)

2024-07-10 09:54:40| 来源: 网络整理| 查看: 265

简介

MybatisPlus最新代码生成器(3.5.1+)使用教程(1)——输出路径详细解析 MybatisPlus最新代码生成器(3.5.1+)使用教程(2)——输出文件名详细解析 MybatisPlus最新代码生成器(3.5.1+)使用教程(3)——指定数据库表详细解析 MybatisPlus最新代码生成器(3.5.1+)使用教程(4)——文件模板解析

前两篇教程说明了如何通过 packageConfig 控制输出路径,以及通过 strategyConfig 控制输出文件名,本文将着重说明如何指定数据库表。

com.baomidou.mybatisplus.generator.IDatabaseQuery 是一个抽象类。它的实现类,同时也是它的内部静态类 DefaultDatabaseQuery,重点分析它的 queryTables 方法。

因为该方法就是扫描数据库表,并获取所需表信息的类。

先来看一下 addInclude 的使用方法展示:

FastAutoGenerator.create("url", "username", "password") // addInclude 增加包含的表名,可以增加多个 .strategyConfig(builder -> builder.addInclude("ums_administrator")) .execute();

接着,再来看 addExclude 的使用方法展示:

FastAutoGenerator.create("url", "username", "password") // addExclude 增加排除表,可以增加多个 .strategyConfig(builder -> builder.addExclude("ums_administrator_role_relation")) .execute();

首先,总览一下 queryTables() 方法:

其中,

String tablesSql = dbQuery.tablesSql(); 根据不同类型的数据库获取不同的基本查询语句,该语句功能就就是查询所有的数据库表; dbQuery.query 的作用,就是执行sql查询语句,并且查询到的每一行结果交给外层的都 Consumer 来处理。(这个类似访问者模式) dbQuery.tableSql() 则是组装查询所有数据库表的sql语句;

对象 dbQuery 的类是 com.baomidou.mybatisplus.generator.config.querys.DecoratorDbQuery,它的 tableSql 方法源码如下:

下表反映的是这段代码涉及到的参数:

StrategyConfig可调参数 默认值 备注 enableSqlFilter true 启用sql过滤,语法不能支持使用sql过滤表的话,可以考虑关闭此开关. likeTable null 包含表名 notLikeTable null 不包含表名 include 空 指定包含表 exclude 空 指定不包含表 结论1: 当enableSqlFilter设置为true时,likeTable和notLikeTable配置只能二选一;同样,include和exclude配置也只能二选一 结论2: 当enableSqlFilter设置为true时,include和exclude设置成正则表达式无效!

下面给出 likeTable 的使用示例,notLikeTable 也类似:

FastAutoGenerator.create(properties.getProperty("url"), properties.getProperty("username"), properties.getProperty("password")) .strategyConfig(builder -> builder.likeTable(new LikeTable("user", SqlLike.DEFAULT))) // 等于 %user% .execute();

new LikeTable("user", SqlLike.LEFT) // 等于 %user new LikeTable("user", SqlLike.RIGHT) // 等于 user%

继续来看 queryTables() 的源码:

这段代码,稍稍需要理解的就是这个 matchIncludeTable 和 matchExcludeTable 方法了,跟踪到最内层,就是

如果,用户填写的 include 或者 exclude,如果跟数据库表名相同,就匹配上了,就可以把对应的 TableInfo 加入到 includeTableList 或者 excludeTableList 中了。 !!!但是,如果用户填写的 include 或者 exclude 是正则表达式的话,一定要把 enableSqlFilter 设置为 false!然后,如果数据表名和用户设置的正则表达式匹配上,就算是命中了。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭