Java,MySQL:有没有办法用Java程序嵌入MySQL服务器?
我喜欢.NET的一件事是能够将数据库文件与项目一起提供。我知道使用SQLite数据库,这是可以做到的,但是有人用MySQL数据库后端实现了这一点吗?
例如,如果我运行一个java程序,它应该能够启动自己的迷你MySQL服务器并操作数据。所以从本质上讲,我想要与SQLite相同的流程,但我需要MySQL的强大功能。
我喜欢.NET的一件事是能够将数据库文件与项目一起提供。我知道使用SQLite数据库,这是可以做到的,但是有人用MySQL数据库后端实现了这一点吗?
例如,如果我运行一个java程序,它应该能够启动自己的迷你MySQL服务器并操作数据。所以从本质上讲,我想要与SQLite相同的流程,但我需要MySQL的强大功能。
如果您不介意使用MariaDB(MySQL的开源变体,基本上工作原理相同),MariaDB4j可以成为生产环境的完美选择。
MariaDB4j 是一个 Java (!)MariaDB的“启动器”(“向后兼容,MySQL(R)数据库服务器的直接替代品”,请参阅常见问题解答和维基百科),允许您从Java使用MariaDB(MySQL(R)),而无需任何安装/外部依赖。再读一遍:您不必在系统上安装MariaDB二进制文件即可使用MariaDB4j!
由于它完全无需在用户PC上的任何要求即可工作,因此它可能是嵌入MySQL的最佳选择。将不使用嵌入式数据库的项目转换为 MariaDB4j 就像调用以下内容一样简单:
DB db = DB.newEmbeddedDB(3306);
有关详细信息,请阅读 github 页面。Maven 中心依赖性是:
<dependency>
<groupId>ch.vorburger.mariaDB4j</groupId>
<artifactId>mariaDB4j</artifactId>
<version>2.2.3</version>
</dependency>
您可以将它与最新的驱动程序结合使用,以访问MySQL 8.0的所有功能(/=windows,=macos,=linux):win64
win32
mac64
linux64
<dependency>
<groupId>org.craftercms.mariaDB4j</groupId>
<artifactId>mariaDB4j-db-win64</artifactId>
<version>10.4.6.2</version>
</dependency>
如果您介意使用MariaDB,另一种选择是Wix Embedded MySQL。
Wix Embedded MySQL是一个库,它提供了一种在集成测试中运行真实MySql的方法。
为什么?
- 您的测试可以在类似生产的环境中运行:匹配版本,编码,时区,数据库/模式/用户设置;
- 它很容易,比手动安装正确的版本容易得多;
- 您可以为每个项目使用不同的版本/配置,而无需任何本地设置;
- 支持多种平台:Windows,Linux和OSX;
- 提供不断更新的多个版本的MySql - 5.5,5.6,5.7,8.0;
- 测试所有支持的操作系统 (x86/x64) 和版本 (5.5、5.6、5.7、8.0) 的矩阵。
快速搜索显示:MySQL Connector/MXJ — 用于在 MySQL 下载页面上的 Java 应用程序中嵌入 MySQL 服务器::