# sorghum-ddl **Repository Path**: cmeet/sorghum-ddl ## Basic Information - **Project Name**: sorghum-ddl - **Description**: 高粱DDL Java实体类一键转数据库 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 1 - **Created**: 2025-04-08 - **Last Updated**: 2025-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: ddl, wood, mybatis-flex, SpringBoot, solon ## README

🌾 高粱DDL

license Apache 2.0 Gitee star Gitee fork GStar forks

> [欢迎测试] ### ✨ 项目简介 高粱DDL 是一款专注于 **自动化生成数据库建表语句(DDL)** 的智能工具🚀,支持多种主流数据库语法,旨在提升开发者在数据库设计阶段的效率,避免手动编写SQL的繁琐和错误。 #### 🎯 现已用于 **anno-admin实体类映射到数据库**! - 支持**mybatis** - 支持**mybatis-plus** - 支持**mybatis-flex** - 支持**wood** --- ### **🔧 核心功能** 1.**⚡ 一键生成DDL** - 根据用户输入的字段、类型、约束等参数,自动生成规范的建表SQL语句📑。 - 支持索引创建SQL语句 - 支持数据库与本地进行对比生成增量SQL. - 支持从数据库中获取当前表信息 - 支持 MySQL[已测试]、PostgreSQL[已测试]、~~Oracle~~[待测试]、~~SQL Server~~[待测试] 四种数据库语法,适配不同项目需求🔌。 2.**🔄 多ORM框架适配** - 现在已支持**mybatis**、**mybatis-plus**、**mybatis-flex** 和 **wood** 🎯 - 支持原有orm框架的注解支持,优先级更高! --- ### **💡 使用场景** - **🚀 快速原型开发**:在项目初期快速生成数据库表结构。 - **🌍 跨数据库迁移**:将已有表结构转换为其他数据库的语法。 - **👥 团队协作(可能)**:统一DDL规范,减少人工编写差异。 --- ### **🌟 项目亮点** - **📦 轻量化**:专注于DDL生成,无需复杂配置。 - **🗃️ 多数据库支持**:覆盖主流关系型数据库。 - **🔮 扩展性**:未来可能支持更多语言和框架。 --- ### **更新记录** - 新增SQL执行记录文件. - 新增支持禁止所有更新执行配置,更加安全. - 支持多实体类@Ddl合并 - 新增@Ddl强过滤功能 ddlWhite配置 - 修复jar包无法扫描的问题 #### 2025.08.08 - 支持自定义类加载器 --- ### 使用方法: #### spring-boot 支持 2.7+ - pom.xml ```xml apache_snapshot https://s01.oss.sonatype.org/content/repositories/snapshots/ true false ``` - pom.xml ```xml site.sorghum.ddl sorghum-ddl-[ORM框架] 2025.08.11 site.sorghum.ddl sorghum-ddl-spring-boot-starter 2025.08.11 ``` - application.yml ```yml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/xxxxxx?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true username: xxxxxx password: 123456 sorghum-ddl: # 配置实体类扫描的包 basePackages: - site.sorghum.ddl.spring.entity createTable: true addColumn: true addIndex: true dropColumn: true dropIndex: true # 禁止所有执行 banExe: true # sql执行记录文件 logPath: .\ddl\ddl.sql # 启用Ddl注解白名单,只处理@Ddl的类 默认false ddlWhite: true ``` - 启动项目即可 #### solon - pom.xml ```xml apache_snapshot https://s01.oss.sonatype.org/content/repositories/snapshots/ true false ``` - pom.xml ```xml site.sorghum.ddl sorghum-ddl-[ORM框架] 2025.08.11 site.sorghum.ddl sorghum-ddl-solon-plugin 2025.08.11 ``` - application.yml ```yml 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 # 禁止所有执行 banExe: true # sql执行记录文件 logPath: .\ddl\ddl.sql # 启用Ddl注解白名单,只处理@Ddl的类 默认false ddlWhite: true ``` --- ### 注解文档 #### @Ddl - 类注解: 用于指定实体类的别名,在生成DDL时,将使用指定的别名作为表名。 - 启用DdlWhite时,只扫描@Ddl注解的类 - 字段注解:用于指定实体类字段的别名,在生成DDL时,将使用指定的别名作为字段名。 #### @DdlExclude - 类注解: 用于排除实体类是否跳过生成DDL。 - 字段注解:用于排除实体类字段是否跳过生成DDL。 #### @DdlId - 字段注解:用于指定实体类字段为主键,在生成DDL时,将使用指定的主键作为主键。 - 支持联合ID - #### @DdlType - 字段注解:用于指定实体类字段的数据类型,在生成DDL时,将使用指定的数据类型作为字段类型。 - 支持自定义类型:value - 支持长度 精度 是否可谓空 #### @DdlIndex - 字段注解:用于指定实体类字段是否需要创建索引,在生成DDL时,将使用指定的索引作为索引。 - 支持联合索引,按照group区分是否为同一条索引. - 支持唯一索引:unique=true #### @DdlWeight - 字段注解:用于指定实体类字段的权重,在生成DDL时,将使用指定的权重作为字段权重。 - 用于建表排序,权重越高排越前。 #### 除此之外 - 支持mybatis-plus、mybatis-flex、wood等注解。 --- ## 参与贡献流程 1. **进群讨论** - 可以在群里抛出您遇到的问题,或许已经有人解决了您的问题。 2. **提 Issue** - 如果 Issue 列表中已有相关问题,可直接认领该 Issue。 - 若无,请新建一个 Issue 描述问题。 3. **Fork 仓库** - 复制本项目的仓库到您的账号下。 4. **新建分支** - 新特性分支命名格式:`feat/#{issue-id}` - Bug 修复分支命名格式:`fix/#{issue-id}` 5. **本地自测** - 确保通过所有现有单元测试。 - 为您解决的问题新增单元测试。 6. **提交代码** - 将修改推送到您的分支。 7. **创建 Pull Request** - 向本项目发起合并请求。 8. **PR 审核** - 我会验证和测试您的 PR,通过后将合并至 `dev` 分支,随新版本发布时同步到 `master`。 🎉 被采纳的 PR 贡献者将列入 README 的贡献者列表! ## 许可证 sorghum-ddl 使用Apache2.0许可证。详情请参阅LICENSE文件。