gpt4 book ai didi

java - 如何覆盖Java DB?

转载 作者:行者123 更新时间:2023-12-01 10:19:42 26 4
gpt4 key购买 nike

我的应用程序使用嵌入式 Java DB。 A similar question询问如果目标数据库尚不存在,如何创建 Java DB;添加 create=true 属性会产生所需的结果,例如:

     conn = DriverManager.getConnection("jdbc:derby:mydatabase;create=true",props);

但我想覆盖数据库(如果存在)。我想我可以简单地删除并重新创建数据库的父目录。有更好的解决办法吗?

最佳答案

嵌入式 Derby 数据库完全包含在文件系统上的数据库文件夹中,因此删除该文件夹并使用 create=true 重新创建数据库就可以了。

对数据库中的所有表(以及索引、 View 等)发出 DROP TABLECREATE TABLE 语句也完全没问题。

两种方法都达到了目的。对于您的应用程序来说,哪一种是“更好的解决方案”完全取决于您。

在我的应用程序中,我倾向于将表/索引/ View /约束 DDL 语句与应用程序逻辑本身分开,并且我还倾向于使这些 DDL 语句集合具有幂等性;也就是说,这些 DDL 语句总是从删除先前的表/ View /索引/等开始。对象,然后创建新对象,这样我就可以在应用程序开发过程中随时运行这些 DDL 语句,从头开始重新创建数据库对象。

但是您的应用程序可能不是这样构造的,在这种情况下,您可能会发现物理删除整个目录文件夹更容易。

关于java - 如何覆盖Java DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35679435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com