功能亮点根据xbatis实体生成 CREATE TABLE SQL表不存在时自动建表表存在时可在 UPDATE 模式下自动追加新增字段支持只生成SQL不执行数据库操作通过JDBC DatabaseMetaData 判断表、字段和索引是否存在支持常见Java类型到数据库列类型映射支持 ColumnDefinition 配置字段长度、精度、小数位、默认值、唯一约束、非空和字段注释支持类级 Index 创建普通索引和唯一索引。安全边界把控UPDATE 模式只会自动新增字段和缺失索引不会自动执行删除数据库已有字段、修改字段类型等操作建议通过人工审核SQL或专业迁移工具处理。Maven坐标信息本工具Maven坐标为 cn.xbatisxbatis-ddl-auto1.0.1运行依赖xbatis core cn.xbatisxbatis-core1.10.6默认测试使用JUnit 5和H2需要真实数据库的集成测试通过Maven profile单独执行。快速开始步骤定义xbatis实体示例代码展示了如何定义xbatis实体如 Table(sys_user) 等。执行自动建表示例代码展示了如何执行自动建表如 DDLAuto.of(DbType.MYSQL).add(SysUser.class).execute(dataSource)。不同模式介绍CREATE模式默认模式表不存在执行 CREATE TABLE表已存在跳过。UPDATE模式用于补新增字段和缺失索引表不存在执行 CREATE TABLE表已存在只对新增字段执行 ALTER TABLE ... ADD COLUMN ... 并创建缺失索引且不会重复添加已存在字段或索引。只生成SQL / 预览SQL不连接数据库可生成建表SQL传入 DataSource 或 Connection 可按当前数据库状态预览SQL不同情况有不同返回结果也可使用底层构建器生成单个字段的新增列SQL生产或准生产环境建议先审核SQL再执行。执行监听设置DDL按SQL列表逐条执行可配置执行监听器记录已执行SQL执行失败时 SQLException 消息包含当前失败SQL和已执行SQL生产或准生产环境建议先审核SQL再执行。支持的注解详情Table用于解析表名和schema。TableId用于识别主键和数据库自增不同情况有不同处理方式UPDATE 模式会读取已有序列只创建缺失序列。ColumnDefinition用于控制建表字段定义有多种常用配置unique true 表示单字段唯一约束不同模式和数据库有不同处理。Index用于在实体类上声明数据库索引不同模式下有不同操作ClickHouse不支持时会抛出异常。PostgreSQL和SQL Server字段注释会生成相应SQL。类型映射情况默认类型映射包括 String 等多种Java类型到数据库列类型的映射具体类型会根据 DbType 做方言调整。