使用初始化SQL脚本
郭胜凯2026/01/13
说明
在某些情况下, 我们可能需要在应用程序启动时执行一些初始化的SQL脚本, 例如插入初始用户和角色等。Smart Mybatis 提供了方便的方式来实现这一需求。
配置初始化SQL脚本
要在应用启动时执行初始化SQL脚本, 我们可以在项目的资源目录下创建SQL脚本文件比如 init.sql 的文件。然后在实体类中使用@TableName注解的init参数来实现指定表的初始化脚本。
@TableName(name = "example_table", init = "init.sql")
注意
- 初始化SQL脚本的路径是类资源路径下的文件(
classpath:) - 只有在实体类对应的表不存在或无数据时才会执行该脚本。一旦表中存在任意数据, 初始化脚本将不会被执行。
时机
当同时开启了自动同步数据库结构(smart.mybatis.auto-sync-ddl=true)时, 初始化SQL脚本会在表结构同步之后执行.
也就是说, 初始化脚本除了可以初始化一些预制数据以外, Smart Mybatis 还允许通过初始化脚本覆写自动同步的表结构, 以达到精修的目的(但只会在表数据为空时执行)。
