【问题标题】:How to allow other people to use desktop application that relies on database?如何让其他人使用依赖数据库的桌面应用程序?
【发布时间】:2015-08-04 02:23:15
【问题描述】:

所以我使用 Swing 创建了一个 java 桌面应用程序。它将输入到应用程序中的数据存储在 MySQL 数据库 (localhost) 中。现在其他人将如何使用该应用程序?他们是否也需要 MySQL 数据库?这样做的最佳做法是什么。我最终希望将整个项目文件夹提交到 github。

【问题讨论】:

  • 问题取决于,如果你想继续使用本地数据库运行应用程序,那么你可以简单地创建一个安装程序来安装你的应用程序(和 MySQL),或者甚至考虑使用像 H2 这样的独立数据库反而。如果您希望人们能够共享数据,那么您需要考虑使用集中式数据库服务器,但这会引发安全和访问问题
  • 第一个选项似乎更简单。所以做了一些研究,我发现了一个在 Java 平台上打包 Java 应用程序的工具,叫做 izPack。它的多平台是理想的。但这真的是好习惯吗?我的意思是,除了应用程序之外,我还强制用户安装 mysql。
  • 如果你只在独立模式下使用 MySQL,那么不,我认为这不是一个好习惯

标签: java mysql swing desktop-application


【解决方案1】:

我想我得先问一下这个程序是演示项目还是课堂项目,还是真正的应用程序,因为答案会有所不同。

对于演示项目,可以将代码发布到 github,并将数据库转储到 .sql 文件并提交。 MySQL 附带了一个名为 mysqldump 的便捷工具,它可以做到这一点 - 导出数据库的全部内容。然后一个人可以克隆你的 github repo,在本地安装 MySQL,然后运行你的 sql 脚本来获取你的数据库的副本。一旦他们按照这些步骤操作,他们应该能够像您一样在他们的机器上运行您的 Swing 应用程序的副本。不过这里需要注意的一个问题是,最好避免将非常大的文件(尤其是二进制文件)放入 git 中。我不确定你需要什么,但如果你可以放一个小的 sql 文件,那绝对是首选。

这是另一个答案的延续,即在某处托管 your MySQL 数据库。对于真正的应用程序,复制是行不通的。然后您需要做的是使用像this one 这样的服务集中托管您的数据库,并允许您的用户连接到它。在 localhost 上创建数据库后,您仍然可以使用 mysqldump 在 Web 上获取数据库。如果你走这条路,你肯定想避免将你的数据库连接字符串放在 github 上。同样,这种情况仅在您的应用打算用于实际使用时才真正有用 - 如果您不需要它,请不要为托管而烦恼。

希望这会有所帮助!

【讨论】:

  • 这个项目在某种程度上是一个真正的项目/简历生成器项目。有趣的是,我不知道您可以免费集中托管数据库,尽管我认为这没有必要,因为数据应该存储在本地而不是为每个用户公开。此外,当您运行我的项目时,一切都是独立的。也就是说,它只需要用户的用户名、密码、端口等,应用程序创建数据库和所有关联的表(如果尚未创建),然后启动应用程序 gui。所以它实际上并不包含任何 sql 文件。
【解决方案2】:

首先,你应该用公共ip安装mysql,然后用ip改变与mysql的连接,示例如下

String url = "jdbc:mysql://ip:3306/db";
Connection conn = DriverManager.getConnection(url, user, password);

如果你想运行exe文件之类的java程序,用jre将java程序打包成jar文件

【讨论】:

    猜你喜欢
    • 2020-06-23
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多