如何运行sql脚本以从java代码更新Derby模式?
客户端的derby数据库安装有不同的模式版本。例如,Customer1的db模式版本为4.1.5.0240,Customer2的版本为4.0.1.0330 其想法是在安装新软件时将这些模式更新为实际版本。为了将版本更新到下一个级别,存在多个sql脚本。例如,将_4.1.5.0240_更新为_4.3.1.0020.sql 我正在寻找的工具/过程应该从derby数据库表中读取实际安装的版本。根据该版本,应运行适当的sql脚本,以便将模式更新到下一级别。必须重复此过程,直到找不到与实际读取版本匹配的sql脚本 在客户现场的安装应在没有任何管理员帮助的情况下进行 1.)我更喜欢使用JDBC读取版本的java程序。但是如何从java内部运行sql脚本呢?我应该从java调用ij命令行工具吗 2)是否有更好的替代方案 谢谢如何运行sql脚本以从java代码更新Derby模式?,java,derby,Java,Derby,客户端的derby数据库安装有不同的模式版本。例如,Customer1的db模式版本为4.1.5.0240,Customer2的版本为4.0.1.0330 其想法是在安装新软件时将这些模式更新为实际版本。为了将版本更新到下一个级别,存在多个sql脚本。例如,将_4.1.5.0240_更新为_4.3.1.0020.sql 我正在寻找的工具/过程应该从derby数据库表中读取实际安装的版本。根据该版本,应运行适当的sql脚本,以便将模式更新到下一级别。必须重复此过程,直到找不到与实际读取版本匹配的s
Viktor您可能会发现ij.runScript方法很有用:
需要注意的一点是,在脚本中自动执行错误处理并不容易,因为ij脚本中没有控制流(if/then/else)构造。但是,如果您只需要以干净的方式执行一系列DDL操作,ij.runScript是一种非常好的技术。您可能会发现ij.runScript方法非常有用:
需要注意的一点是,在脚本中自动执行错误处理并不容易,因为ij脚本中没有控制流(if/then/else)构造。但是,如果您只需要以干净的方式执行一系列DDL操作,ij.runScript是一种非常好的技术。您可以将SQL存储在文本文件中: 从java代码中读入SQL以更新/插入数据到各个表中: 您的java代码还可以对“要运行的SQL更新文件”执行检查 沿着这些线的东西(在非常伪的代码中)
Installed=getCurrentInstalledVersion()//当前版本的管理表中存储的信息
如果(已安装
我让你去弄清楚更详细的细节。如果你已经找到了解决方案,为什么不在这里发布呢
如果您使用交换机,您可以在需要时通过其他版本运行更新到新版本,方法是按正确的顺序放置版本,并在任何中断之前插入代码 您可以将SQL存储在文本文件中: 从java代码中读入SQL以更新/插入数据到各个表中: 您的java代码还可以对“要运行的SQL更新文件”执行检查 沿着这些线的东西(在非常伪的代码中)
Installed=getCurrentInstalledVersion()//当前版本的管理表中存储的信息
如果(已安装
我让你去弄清楚更详细的细节。如果你已经找到了解决方案,为什么不在这里发布呢
如果您使用交换机,您可以在需要时通过其他版本运行更新到新版本,方法是按正确的顺序放置版本,并在任何中断之前插入代码
Installed = getCurrentInstalledVersion();//info stored in an admin table for current version
if (Installed < V4.1){//This would probably work better as a switch
String sql = updateWith(URL file:\\PathTov4.1\sql.txt);
}
else{
if(Installed = OtherVersions){
String sql = UpdateWith(URL file:\\PathToOtherVersion\sql.txt);
}
}
Connect.sendSQL(sql);//send the sql to the DB