1 Star 3 Fork 0

杜福忠/JFinal-UpgradeSqlPlugin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MulanPSL-2.0

JFinal-UpgradeSqlPlugin

介绍

该插件支持项目启动时自动检查数据库是否需要执行SQL脚本。SQL脚本支持Enjoy SQL模板语法,方便定制功能。

软件架构

软件架构说明

安装教程

1、注册插件:https://jfinal.com/doc/2-5

public void configPlugin(Plugins me) {
    DruidPlugin dp = new DruidPlugin(jdbcUrl, userName, password);
    me.add(dp);
    
    //自动检查升级数据库
    me.add(new UpgradeSqlPlugin(dp));
    
    ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
    arp.addMapping("user", User.class);
    me.add(arp);
}

数据库连接账户需要使用 有建表 修改表 等权限的账户,一般升级脚本里面就是要建表和改变表结构的。 如果担心业务数据账户安全 ,可以使用独立的DruidPlugin,和业务数据库账户分开,高权限的账户只做升级操作,升级完立即stop掉就可以了。

2、编写SQL脚本:

在配置文件目录 》建一个upgrade_sql目录,里面编写模板SQL文件即可,比如: src/main/resources/upgrade_sql/2023-07-16_user_dfz.sql

SQL文件除了支持 官方的#para 指令,还增加了几个常用指令:

#runSql、#find、#findFirst、#try
执行多行SQL:
#runSql(受影响行数返回结果的变量名默认是result, true) 特殊场景:给true参数时代表运行异常时可继续执行
在此是SQL语句,多条用 ;\n 分号加回车符 隔开
#end

查询list集合的,一般用于需要先查出结果再根据数据进行修改的,比如迁移历史数据,之前是一对一,后面改成了一对多等等业务
#find(返回结果的变量名默认是list)
在此是SQL语句
#end

查一条数据的:
#findFirst(返回结果的变量名默认是record)
在此是SQL语句
#end

以及吃住异常再处理的指令:

#try(默认值exception可设置)
包裹代码或指令
#end
#if(exception)
#(exception.getMessage())
#end
 
-----------------------------------------------------
例子:
#runSql()
ALTER TABLE xxxx
#end

项目启动升级后,数据库会自动建一个upgrade_sql_config_log记录升级情况。

业务系统做一个界面可查看升级记录就OK了。

空文件

简介

该插件支持项目启动时自动检查数据库是否需要执行SQL脚本。SQL脚本支持Enjoy SQL模板语法,方便定制功能。 展开 收起
README
MulanPSL-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/bean80/jfinal-upgrade-sql-plugin.git
git@gitee.com:bean80/jfinal-upgrade-sql-plugin.git
bean80
jfinal-upgrade-sql-plugin
JFinal-UpgradeSqlPlugin
master

搜索帮助