如何使 mysql 数据库在客户端计算机(桌面应用程序)上运行?

How to make mysql database works on a client computer (desktop appilcation)?

我正在制作一个 JavaFX 应用程序(租赁管理软件)并使用 MySQL 数据库,

我想知道既然数据库在我的 PC 上,我怎样才能使我的应用程序在我朋友或客户的 PC 上运行?有没有什么方法可以在他们的 PC 上配置数据库而不需要他们完成 MySQL 的所有安装过程,因为他们不适合 PC,而且让客户端设置数据库也不可靠我想使用本地数据库?

服务器与嵌入式

有两种数据库引擎:

  • 那些 运行 在自己的进程中,作为一个单独的应用程序,接受来自同一台计算机上或网络上任意数量的其他应用程序的连接。我们称之为 数据库服务器 。 Postgres、MySQL、Microsoft SQL Server、Oracle 等 运行 这样。
  • 那些 运行 在一个应用程序的进程中,从该父应用程序启动和停止,仅接受来自该父应用程序内部的连接。我们称之为 嵌入式数据库引擎 。 SQL这样运行。

某些数据库产品可以 运行 以任一方式进行。 H2 Database Engine 就是这样一种产品。

鉴于您的情况,并且 H2 是用纯 Java 编写的,我建议您将 MySQL 替换为 H2。 运行 嵌入模式下的 H2。

云数据库

另一种选择是设置一个数据库(MySQL 或其他)供您的用户通过 Internet 访问。您可以 运行 您自己的服务器。或者,您可以利用任何一家数据库即服务 (DBaaS) 供应商,例如 Digital Ocean。由于不可靠的互联网连接、数据库密码的安全问题以及多租户的挑战,这种 “cloud database” 方法可能不适用于桌面应用程序。

存储库设计

顺便说一下,您可能想了解您的应用和数据库之间的 Repository design approach in using interfaces and implementations as a layer of abstraction。这使得切换数据库引擎更容易。

例如,您的存储库接口将声明 fetchAllCustomers()fetchCustomerForId( UUID id ) 等方法。该接口的一个实现可能是为 MySQL 构建的,而另一个实现是为 H2 构建的。存储库接口上的代码调用方法对 MySQL 或 H2.

一无所知