跳到主要内容
自动化 · 无侵入 · 高扩展

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-starterStarter

Spring Boot 自动装配,一个注解即可接入

开始你的第一个 ezasse 项目

五分钟即可完成接入,让数据库脚本管理从此不再烦恼。