Solon v3.2.0

::sorghum-ddl-solon-plugin

</> markdown
<dependency>
    <groupId>site.sorghum.ddl</groupId>
    <artifactId>sorghum-ddl-solon-plugin</artifactId>
    <version>2025.04.17-SNAPSHOT</version>
</dependency>
<!--具体ORM框架-->
<dependency>
    <groupId>site.sorghum.ddl</groupId>
    <artifactId>sorghum-ddl-[ORM框架]</artifactId>
    <version>2025.04.17-SNAPSHOT</version>
</dependency>

最新开发进度/版本查看 sorghum-ddl

1、描述

高粱DDL插件,根据 Java 实体,自动映射成数据库的表结构。 支持:版本对比/自动维护等功能.

数据库:Mysql/PgSql

自动化生成数据库建表语句(DDL) 的智能工具。 支持多种主流数据库语法,旨在提升开发者在数据库设计阶段的效率,避免手动编写SQL的繁琐和错误。

2、数据库支持

测试会有遗漏!求大佬们轻拍测试,喜欢请⭐Star⭐

部分测试版本

数据库测试版本说明
✅ MariaDB8.3协议使用MySQL,即jdbc:mysql://
✅ Mysql应该差不多
✅ PostgreSQL17.4
其他数据库未测试有需欢迎说

3、快速上手

第 1 步:添加Maven依赖 如果是快照版本,请添加快照仓库

<!--引入快照库-->
<repositories>
    <repository>
        <id>apache_snapshot</id>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>

<!--依赖引入-->
<!--依赖引入-->

<!--sorghum-ddl-mybatis-->
<!--sorghum-ddl-mybatis-flex-->
<!--sorghum-ddl-mybatis-plus-->
<!--sorghum-ddl-wood-->
<dependencies>
    <dependency>
        <groupId>site.sorghum.ddl</groupId>
        <artifactId>sorghum-ddl-[ORM框架]</artifactId>
        <version>2025.04.17-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>site.sorghum.ddl</groupId>
        <artifactId>sorghum-ddl-solon-plugin</artifactId>
        <version>2025.04.17-SNAPSHOT</version>
    </dependency>
</dependencies>

第 2 步:配置文件

solon.dataSources:
  "db1!":
    class: "com.zaxxer.hikari.HikariDataSource"
    jdbcUrl: jdbc:mysql://127.0.0.1:3306/xxxxxx?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true
    driverClassName: com.mysql.cj.jdbc.Driver
    username: xxxxxx
    password: xxxxxx
    schema: xxxxxx
sorghum-ddl:
  # 配置实体类扫描的包
  basePackages:
    - site.sorghum.ddl.solon.entity
  # 开启自动建表
  createTable: true
  # 开启自动添加字段
  addColumn: true
  # 开启自动添加索引
  addIndex: true
  # 开启自动删除字段
  dropColumn: true
  # 开启自动删除索引
  dropIndex: true

第 3 步:启动应用

@SolonMain
public class DemoSorghumDdlApplication {
    public static void main(String[] args) {
        Solon.start(Application.class, args);
    }
}

第 5 步:重启项目

查看控制台信息与数据库表和字段是否生成

注解支持

@DdlAlias

- 类注解: 用于指定实体类的别名,在生成DDL时,将使用指定的别名作为表名。
- 字段注解:用于指定实体类字段的别名,在生成DDL时,将使用指定的别名作为字段名。 

@DdlExclude

- 类注解: 用于排除实体类是否跳过生成DDL。
- 字段注解:用于排除实体类字段是否跳过生成DDL。

@DdlId

- 字段注解:用于指定实体类字段为主键,在生成DDL时,将使用指定的主键作为主键。
- 支持联合ID
- 
@DdlType

- 字段注解:用于指定实体类字段的数据类型,在生成DDL时,将使用指定的数据类型作为字段类型。
- 支持自定义类型:value
- 支持长度 精度 是否可谓空

@DdlIndex

- 字段注解:用于指定实体类字段是否需要创建索引,在生成DDL时,将使用指定的索引作为索引。
- 支持联合索引,按照group区分是否为同一条索引.
- 支持唯一索引:unique=true

@DdlWeight

- 字段注解:用于指定实体类字段的权重,在生成DDL时,将使用指定的权重作为字段权重。
- 用于建表排序,权重越高排越前。

除此之外

- 支持mybatis-plus、mybatis-flex、wood等注解。

具体参考官方文档:

https://gitee.com/cmeet/sorghum-ddl