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

mo7*_*med 2 java mysql desktop-application javafx

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

我想知道如何使我的应用程序在我的朋友或客户的 PC 上运行,因为数据库位于我的 PC 上?有没有什么方法可以在他们的 PC 上配置数据库,而无需他们执行 MySQL 的所有安装过程,因为他们不擅长使用 PC,并且让客户端设置数据库不可靠,我想使用本地数据库?

Bas*_*que 5

服务器与嵌入式

\n

数据库引擎有两种:

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

某些数据库产品可以以任一方式运行。H2 数据库引擎就是这样的产品之一。

\n

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

\n

云数据库

\n

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

\n

存储库设计

\n

顺便说一句,您可能想了解存储库设计方法,使用接口和实现作为应用程序和数据库之间的抽象层。这使得切换数据库引擎变得更加容易。

\n

例如,您的存储库接口将声明诸如fetchAllCustomers()和 之类的方法fetchCustomerForId( UUID id )。该接口的一种实现可能是为 MySQL 构建的,而另一种实现是为 H2 构建的。存储库接口上的代码调用方法对 MySQL 或 H2 一无所知。

\n