mybatis-table-modify 1.5.1-beta3,自动生成和变更表结构组件更新


项目介绍

本项目 Fork 自 A.C.Table,之前在其他项目中用到了 A.C.Table, 并对功能进行了改造。因为该 A.C.Table 项目近期发生了停更,所以打算把这些功能给开源出来,同时继续将这个项目完善下去。

项目地址:https://gitee.com/bootx/mybatis-table-modify,非常欢迎看看项目介绍留以及个Star呀🤺🤺🤺

更新说明

  • fix: 获取MySqlFieldType
  • fix: 打包时未把mapper 导入jar

功能说明

  • 支持自动创建和更新数据库表结构
  • 支持指定表的名称、字符集、引擎类型、注释等信息
  • 支持指定表字段的类型、排序、非空、自增、默认值、长度等信息
  • 支持配置索引,包括指定字段、类型、注释等
  • 支持多种更新模式:创建和更新表、只创建不更新、删除后重新创建、不进行任何操作

 路线图

  • 1.5.1 主要目标:调整项目结构,去除除表维护相关的其他功能,代码暂时只适配 Spring Boot 项目
  • 1.5.2 主要目标:拆分为 Maven 多模块项目,支持非 Spring Boot 的项目接入
  • 1.5.x 目标:
    • 支持 SQL Server 数据库的表维护
    • 支持 Oracle 数据库的表维护
    • 支持达梦数据库的表维护
    • 提供接入其他类型数据库的插件机制
  • 1.6.x 目标:
    • 支持非 Spring 中间件的项目接入
    • 支持多数据源中间件

使用说明

添加 pom 依赖

<dependency>
<groupId>cn.bootxe</groupId>
<artifactId>mybatis-table-modify</artifactId>
<version>${latest.version}</version>
</dependency>

最新版本

配置要建表的路径

无论是使用 MyBatis 还是 MyBatis Plus,需要保证项目中的 mapper 被扫描到,否则会报错无法启动,项目中 mapper 文件所在的路径为 classpath*:cn/bootx/mybatis/table/modify/impl/*/mapper/*TableModifyMapper.xml

mybatis-table:
# 数据库类型
database-type: mysql
# 更新类型
update-type: create
# 扫描包路径, 可以用 ,和 ; 分隔
scan-package: cn.bootx.**.entity

核心注解

不同的数据库各自会有一些专属的注解,通常适用于对应类型数据库专有的配置,如 MySQL 专有的 MySqlEngine(存储引擎)MySqlFieldType(字段类型) 

@DbTable

表注释,标注在要进行建表的实体类上

属性 类型 默认值 描述
name String "" 表名,未配置时会读取 TableName 中的配置
value String "" 表名,未配置时会读取 TableName 中的配置
comment String "" 表注释
charset MySqlCharset "" 数据库默认字符集
isSimple boolean true 是否开启 simple 模式配置,开启后字段不写注解 @Column 也可以采用默认的驼峰转换法创建字段
excludeFields String[] {} 需要排除的属性名,排除掉的属性不参与建表,静态字段默认会被排除

@Column

字段注解,@DbTable 开启 simple 模式后,@DbColumn 不标注也会根据规则进行转换

属性 类型 默认值 描述
name String "" 行名,未配置时会读取 Column 中的配置
value String "" 行名,未配置时会读取 Column 中的配置
order int 0 数据库字段排序,数字小的在前面,大的在后面
type MySqlFieldType DEFAULT 不填默认使用属性的数据类型进行转换,转换失败的字段不会添加
length int 255 字段长度,默认是 255
decimalLength int 0 小数点长度,默认是 0
isNull boolean true 是否为可以为 null,true 是可以,false 是不可以,默认为 true
isKey boolean false 是否是主键,默认 false
isAutoIncrement boolean false 是否自动递增,默认 false,只有主键才能使用
defaultValue String "DEFAULT" 默认值,默认为 null
comment String "" 数据表字段备注
ignore boolean false 是否排除该字段,默认不排除

🥂 Bootx 项目合集

  • Bootx-Platform 单体版脚手架
  • Bootx-Cloud 微服务版脚手架
  • Dax-Pay 支付开发平台
  • Mybatis-Table-Modify 数据库表结构管理
  • Bpm-Plus 工作流开发平台

🍻 鸣谢

感谢 JetBrains 提供的免费开源 License:

JetBrains

🍷License

Apache License Version 2.0

 


相關推薦

2023-10-23

【源创会预告】1024 程序员节(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 项目介绍 本项目 Fork 自 A.C.Table,之前在其他项目中用到了 A.C.Table, 并对功能进行了改造。因为该 A.C.Table 项目近期发生了停更,所以打

2024-07-02

行。  2. 实时同步新增失败告警、实时同步新增DDL变更事件告警:实时监控数据同步状态,快速响应和处理异常情况。例如,电商平台可以及时发现和修正订单数据同步中的问题,确保业务的连续性,可以让用户快速收到

2023-01-19

。因此,请注意,主框架gredis组件的使用方式发生了一些变更,在依赖redis的项目中需要引入社区组件redis实现,否则方法执行将会返回错误。保留兼容原有基础的Do/DoVar方法,并增加了100+项常用redis操作方法:NoSQL Redis 配置管

2023-06-16

项目介绍         项目地址:https://gitee.com/bootx/bootx-platform,非常欢迎看看项目介绍留以及个Star呀🤺🤺🤺     基于Spring Boot框架生态打造,针对单体式应用进行专门设计,同时做好模

2022-06-25

Bytebase 是一个基于网络、零配置、无依赖的数据库 Schema 变更和版本控制管理工具,适用于开发人员和 DBA。 Bytebase 1.2 发布,更新内容如下: 支持 SQL 编辑器中的 Schema 审核 配置完 Schema 审核规则后,在 SQL 编辑器中运行的

2023-10-23

【源创会预告】1024 程序员节(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 项目介绍         项目地址:https://gitee.com/bootx/bootx-platform,非常欢迎看看项目介绍留以及个 Star 呀🤺🤺

2023-08-11

项目介绍         项目地址:https://gitee.com/bootx/bootx-platform,非常欢迎看看项目介绍留以及个Star呀🤺🤺🤺     基于Spring Boot框架生态打造,针对单体式应用进行专门设计,同时做好模

2023-05-11

项目介绍         项目地址:https://gitee.com/bootx/bootx-platform,非常欢迎看看项目介绍留以及个Star呀🤺🤺🤺     基于Spring Boot框架生态打造,针对单体式应用进行专门设计,同时做好模

2023-10-11

的excel 重构子表单API数据自动导入方案,通过数据手动变更传递数值变更来进行导入操作,防止出现不可控的导入操作或不响应问题 完善高级子表单中下拉框多组件关联的功能 重构高级子表单渲染 & 子表单数据对接 &

2024-04-18

非覆盖式更新:如模型已生成后端代码,devtools将在字段变更时自动非覆盖式更新后端代码。 适配该版本新增的多个数据库 适配Spring boot v3.x,代码生成支持JDK17+ 模型设计优化: 支持指定数据删除方式:逻辑删除/

2024-06-27

download/ GitHub 下载:https://github.com/apache/doris/releases 行为变更 通过 Catalog 查询外部表(如 Hive 数据表)时,系统将忽略不存在的文件:当从元数据缓存中获取文件列表时,由于缓存更新并非实时,因此可能在实际的文件列表

2024-09-28

取字段元数据异常的问题 修复 源端一个事务中有多条变更时 RocketMQ/RabbitMQ/Kafka 对端数据写入 PK 为空的问题(DSG & OGG & Envelope 消息格式) 修复 MySQL 源端初始化时区配置错误的问题 修复 任务详情展示的创建人均

2023-07-18

开发工具 新增gf gen ctrl命令,用于编译api定义目录,自动生成规范的controller、HTTP SDK代码:接口规范-gen ctrl 改进gf gen dao命令,新增TypeMapping特性,开发者可自定义数据表字段类型与生成的Go实体数据结构属性类型映射,并

2022-10-30

等等常规基础模块; 4、设计并研发代码生成器,根据表结构动态解析并生成模块文件和增删改查功能; 5、设计并研发一系列其他配套功能很常规使用函数; 6、解决代码生成器每次生成时未删除菜单节点的问题; 7、重整表结