Java 在.Sql文件中定义版本或其他属性

Java 在.Sql文件中定义版本或其他属性,java,sql,hsqldb,Java,Sql,Hsqldb,我只是想知道我们是否可以在.sql文件中定义属性。我想在.sql文件中定义属性的原因是为了管理数据库的版本 例如: 我正在使用HSQL数据库。目前有两个表。 表1:产品。 表2:版本。(它只包含一个整数) 现在我想要的是,当我的程序运行时,它检查版本是否已更改/升级,以便可以删除现有数据库,并根据.sql文件中写入的新模式和索引语句升级数据库 但我面临的问题是,在程序启动时,我可以从版本表中读取现有版本,但我会将其与哪个版本值进行比较。 因为所有写在.sql文件中的都是 Create table

我只是想知道我们是否可以在.sql文件中定义属性。我想在.sql文件中定义属性的原因是为了管理数据库的版本

例如: 我正在使用HSQL数据库。目前有两个表。 表1:产品。
表2:版本。(它只包含一个整数)

现在我想要的是,当我的程序运行时,它检查版本是否已更改/升级,以便可以删除现有数据库,并根据.sql文件中写入的新模式和索引语句升级数据库

但我面临的问题是,在程序启动时,我可以从版本表中读取现有版本,但我会将其与哪个版本值进行比较。 因为所有写在.sql文件中的都是

Create table products (...);
Create table version (...);
Insert into products values (...);
Insert into version values(2,9-19-2015); //the upgraded version.
因此,要么我应该解析sql文件末尾编写的version语句,提取版本号,并将其与现有版本进行比较,以检查版本是否已更改,要么我该如何做

所以我想我可以在.sql文件中定义一个属性。像这样

version = 2
Create table products (...);
Create table version (...);
Insert into products values (...);
Insert into version values(2,9-19-2015); //the upgraded version.
然后首先阅读版本并进行比较。如果已升级,则运行其余的sql查询

我的意思是,这是使用java管理数据库版本的好方法吗。或者我还能怎么做


非常感谢。

我有版本1、版本2、版本3和版本4的文件。每个文件都会碰撞版本#。我的应用程序运行的方式是如果版本=1,则运行脚本2。然后,如果版本=2,则运行脚本3。等等等等。已更新的程序跳过所有更新…较低版本的程序最终会运行每个更新。与其重新发明轮子,不如查看Liquibase或Flyway。