【问题标题】:Does SQLiteJDBC can work without SQLite installed, and can it initialize the database tables?SQLiteJDBC 是否可以在没有安装 SQLite 的情况下工作,并且可以初始化数据库表吗?
【发布时间】:2011-10-25 21:47:36
【问题描述】:

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

我正在做出以下假设,需要对所有这些假设进行确认,以及我错在哪里,请澄清。

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

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

【问题讨论】:

    标签: java sqlite jdbc sqlitejdbc


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        • 1970-01-01
        • 2020-06-04
        • 1970-01-01
        • 2021-02-03
        相关资源
        最近更新 更多