Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 跨DBs编程表的创建/更改?_Java_Sql - Fatal编程技术网

Java 跨DBs编程表的创建/更改?

Java 跨DBs编程表的创建/更改?,java,sql,Java,Sql,我正在开始一些针对Mysql和Oracle的新代码,以及用于内存测试的H2。然后,必须在客户的站点上部署此代码 由于它会随着时间的推移而发展,我计划使用它,但是我还没有发现任何java/jvm库允许我为所需的DBs声明/更改表并通过类型安全代码查询/插入它们 有图书馆这样做的迹象吗 到目前为止,我的调查: Hibernate不支持迁移和编程创建/更改 表(仅启动时创建/更新选项,它们的数量要少得多 强大的) querydsl不支持表创建/更改 typesafe的slick需要oracle的付费

我正在开始一些针对Mysql和Oracle的新代码,以及用于内存测试的H2。然后,必须在客户的站点上部署此代码

由于它会随着时间的推移而发展,我计划使用它,但是我还没有发现任何java/jvm库允许我为所需的DBs声明/更改表并通过类型安全代码查询/插入它们

有图书馆这样做的迹象吗

到目前为止,我的调查:

  • Hibernate不支持迁移和编程创建/更改 表(仅启动时创建/更新选项,它们的数量要少得多 强大的)
  • querydsl不支持表创建/更改
  • typesafe的slick需要oracle的付费支持
我将不得不回退到普通的老SQL写了3次


最好的是,jooq的座右铭是通过DSL和跨数据库的方式在Java中提供所有SQL功能。非常好:)

我认为这些类型的数据库创建任务不应该由Java运行时完成。它们应该是每个客户机设置的一部分,为每个数据库使用适当的脚本来完成。也许很不幸,但这是必须支持多个关系数据库的代价。好吧,我们已经使用flywaydb,每db迁移文件。这很耗时而且容易出错。。。因此,我的探索,呃,问题;)寻找一种方法来编写sql一次并使用它三次。检查Liquibase而不是Flyway。它的XML格式尽可能独立于DBMS。(虽然我认为使用与生产中不同的DBMS进行测试是一个非常糟糕的主意)实际上,我计划通过jOOQ编写sql:cross db,typesafe,write once在多个db上运行。一切都好。演示已在运行:)