MBG插件

ylake-mybatis-generator

在这里插入图片描述

各方法对应的操作类

batchUpdate BatchUpdateElementGentrator
batchInsert NBatchInsertElementGenerator
deleteByPk DeleteElementByShardGenerator
delete DeleteElementByConditionGenerator
updateByPk UpdateElementByShardGenerator
update UpdateElementByShardGenerator
selectByPk DbFetchOneElementGenerator
selectByPkForUpdate DbFetchOne4UpdateElementGenerator
注释的位置 DmfDaoCommentGenerator.java类的addModelClassComment方法

mapper.xml生成的路径的位置

在这里插入图片描述

入口类

maven的入口类

MyBatisGeneratorMojo.java

XML生成逻辑主入口类

SimpleXMLMapperGenerator.java类

JAVA类生成逻辑主入口类

SimpleModelGenerator.java
getCompilationUnits() //类的主要逻辑
getJavaBeansGetter //get方法的主要生成
getJavaBeansSetter //set方法的主要生成

生成的数字类型转换

JavaTypeResolverDefaultImpl.java类的calculateBigDecimalReplacement方法
在这里插入图片描述

列是否为自动生成列判断

批量插入的生成关于 自动递在这里插入图片描述增的处理
"列"的处理 BatchInsertColumnsElementGenerator.java

value的处理 ValuesElementForBatchGenerator.java

在这里插入图片描述

关于version版本号的处理

AssignmentsElementGenerator.java类 这个是update set 当中的处理
在这里插入图片描述

updateByPk

updateByPk的生成类为UpdateElementByShardGenerator.java
assignments的语句的生成类为
AssignmentsEle
在这里插入图片描述

deleteByPk

主要的生成类为 DeleteElementByShardGenerator.java
在这里插入图片描述

selectByPk

在这里插入图片描述

insert

其中 sql id=“columns” 的入口类为ColumnsElementGenerator.java
在这里插入图片描述

selectList

在这里插入图片描述
conditions对应的生成类为ConditionsElementGenerator.java

插件

    <context id="mysqlTable" targetRuntime="MyBatis3Simple">
        <!---序列化-->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <!---生成toString方法-->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

在这里插入图片描述

使用插件的问题

生成表时报空指针(pgAdmin删了重建)

在这里插入图片描述

int4 int8类型的接收(pgAdmin)

对于PG而言 使用pgAdmin原生的建表工具是无法 建立int4 int8的
pgAdmin只有 integer 或者 bigInteger 可供选择 即
在这里插入图片描述
postgresql的数据类型对批
在这里插入图片描述
如果你一定想使用 int4 或 int8类型的话只能这样
在这里插入图片描述

pg对表名及字段大小写敏感

postgresql对表名及字段大小写敏感 建议在建表语句中的 表名 及 字段名 尽量别用"“双引号 括起来
如果用”“双引号括起来了 在SQL中的只能将表名或字段名也得用”“括起来后 postgresql才能识别 即
select ID,name from Ta 这种语句在pg的驱动执行后实际翻译为
select id,name from ta 后会报一个不存在ta表 而库里真实的表为"Ta”
因此语句 只能写成 select “ID”,name from “Ta” 才能过

造成了不必要的麻烦 ,所以 直接规范一下在建表时 统一都用小写

关于pg大小写敏感的对执行语句及shardingsphere的影响测试如下
测试链接地址
因此在使用MBG时,要在pg创建表时用小写,同是在MBG中生在表也为小写即如下图
在这里插入图片描述
这种在MBG实际生成时会将Mycup 给识别成mycup 如果你的库里的表为"Mycup" 那么此时无法生成文件 他会找不到即报下面警告
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值