4

我试过自己找出这个,但无济于事。我正在编写一个 Java 应用程序,它将通过 Zentu 的 SQLiteJDBC 使用嵌入式 SQLite 数据库。

我正在做出以下假设,需要对所有这些假设进行确认,并在我错的地方进行澄清。

  • 为了让我的 Swing 应用程序正常运行,我需要在我的应用程序所在的每台机器上安装 SQLite,而不仅仅是“myEmbeddedDatabase.db”文件
  • 最佳实践将要求我在安装/部署时运行一个调用 sqlite 的 shell 脚本并运行一个框架/初始化脚本来创建我的应用程序将通过 SQLiteJDBC 使用的表等;我假设这是因为它看起来不像 SQLiteJDBC 有能力读取 *.sql 文件并运行它(好吧,至少在没有我做大量编码的情况下不会!)

感谢任何可以帮助我澄清这些项目的人!

4

2 回答 2

4

1) 不,您所需要的只是对 java 驱动程序的引用。这就是嵌入式数据库系统的魅力所在。您通常会在完整安装的数据库系统中发现一些功能缺失(例如网络支持),但作为交换,您不必在客户端计算机上安装任何东西。

2)您最好的选择可能是在开发时简单地创建数据库模式(表定义,但不是内容)。这样,您可以简单地将其作为资源部署到您的应用程序中,并在您的应用程序首次运行时将其复制到合适的文件夹中。或者,Java 驱动程序将允许您在代码中创建数据库(并向其中添加表)。无论哪种方式,如果您更新您的应用程序,您将需要编写手动代码来检查数据库的版本并根据需要通过添加或删除列/表来更新架构。

于 2011-08-12T15:27:58.793 回答
0

为了让我的 Swing 应用程序正常运行,我需要在我的应用程序所在的每台机器上安装 SQLite,而不仅仅是“myEmbeddedDatabase.db”文件

不,你不需要这样做。SQLite 就是为此而写的。它不是一个需要安装的完整数据库系统(如 MySQL)。将 jdbc 驱动程序与应用程序链接后,您可以在任何地方使用已编译的 java 可执行程序。

于 2011-08-12T15:14:17.963 回答