自动化 · 无侵入 · 高扩展
ezasse
Easy Automatic SQL Script Executor
通过声明式校验语法让 SQL 脚本自动识别是否需要执行,无需维护版本记录表, 天然幂等,轻松融入任何 Spring Boot 项目。
init.sql
-- 表不存在时创建
-- TABLE(t_user)
CREATE TABLE t_user (
id BIGINT PRIMARY KEY,
account VARCHAR(64) NULL,
name VARCHAR(64) NULL
);
-- 字段不存在时添加
-- ADD(t_user.email)
ALTER TABLE t_user
ADD email VARCHAR(128) NULL;
-- SQL 返回 0 时插入数据
-- EXEC(SELECT COUNT(1) FROM t_user WHERE id = 1)
INSERT INTO t_user(id, name)
VALUES (1, 'admin');核心特性
💡
声明式语法
用特殊注释标记 SQL 脚本,逐行扫描、按条件决定是否执行,无需维护额外的版本状态。
🔁
天然幂等
每次启动重新校验,条件满足才执行。已应用的脚本永远不会二次执行,彻底消除重复执行风险。
🧩
无侵入集成
一个注解 @EnableEzasse 即可完成 Spring Boot 接入,不影响现有任何架构与流程。
🔌
高度可扩展
校验器、执行器、数据源、资源加载器均开放扩展点,支持 SPI 和 Spring Bean 两种注册方式。
🗄️
多数据源
文件名与校验行均可指定数据源节点,校验与执行可在不同节点上独立运行,轻松应对复杂场景。
📂
分组有序管理
文件命名约定支持分组(版本号)和顺序号,多版本迭代脚本一览无余,执行顺序可控。
三步快 速接入
1
添加依赖
<dependency>
<groupId>cn.com.pism</groupId>
<artifactId>
ezasse-spring-boot-starter
</artifactId>
<version>latest</version>
</dependency>2
启用注解
@SpringBootApplication
@EnableEzasse
public class Application {
public static void main(
String[] args) {
SpringApplication.run(
Application.class, args);
}
}3
编写 SQL
-- TABLE(t_user)
CREATE TABLE t_user (
id BIGINT PRIMARY KEY,
name VARCHAR(64)
);
-- ADD(t_user.email)
ALTER TABLE t_user
ADD email VARCHAR(128);模块说明
ezasse-core核心抽象骨架、上下文管理、Manager 接口定义,无框架依赖
ezasse-for-jdbcJDBC基于 Spring JdbcTemplate 的执行器与校验器实现
ezasse-for-jdbc-enhanceJDBC+JDBC 增强实现,更多数据库特性支持
ezasse-for-nacosNacos从 Nacos 配置中心加载 SQL 脚本资源
ezasse-spring-boot-starterStarterSpring Boot 自动装配,一个注解即可接入