我喜欢 .NET 的一件事是能够与项目一起拥有数据库文件。我知道使用 SQLite 数据库可以做到这一点,但是有人用 MySQL 数据库后端实现了这一点吗?
例如,如果我运行一个 java 程序,它应该能够启动自己的迷你 MySQL 服务器并操作数据。所以本质上,我想要与 SQLite 相同的流程,但我需要 MySQL 的强大功能。
我喜欢 .NET 的一件事是能够与项目一起拥有数据库文件。我知道使用 SQLite 数据库可以做到这一点,但是有人用 MySQL 数据库后端实现了这一点吗?
例如,如果我运行一个 java 程序,它应该能够启动自己的迷你 MySQL 服务器并操作数据。所以本质上,我想要与 SQLite 相同的流程,但我需要 MySQL 的强大功能。
如果您不介意使用 MariaDB(MySQL 的开源变体,基本上工作方式相同),MariaDB4j可以成为生产环境的完美选择。
MariaDB4j 是 MariaDB 的 Java(!)“启动器”(“向后兼容,MySQL(R) 数据库服务器的替代品”,请参阅常见问题解答和维基百科),允许您使用 MariaDB (MySQL(R))没有任何安装/外部依赖项的 Java。再次阅读:您不必在系统上安装 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 的所有功能(win64
/ win32
=windows、mac64
=macos、linux64
=linux):
<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 服务器:
对于希望嵌入 mysql 的任何人的未来参考,mysql 人员有一个实用程序可以执行此操作http://downloads.mysql.com/archives/c-mxj/