19

我喜欢 .NET 的一件事是能够与项目一起拥有数据库文件。我知道使用 SQLite 数据库可以做到这一点,但是有人用 MySQL 数据库后端实现了这一点吗?

例如,如果我运行一个 java 程序,它应该能够启动自己的迷你 MySQL 服务器并操作数据。所以本质上,我想要与 SQLite 相同的流程,但我需要 MySQL 的强大功能。

4

4 回答 4

22

如果您不介意使用 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)的测试矩阵。
于 2018-03-29T07:02:58.530 回答
17

快速搜索显示:MySQL Connector/MXJ — 用于在 MySQL 下载页面上的 Java 应用程序中嵌入 MySQL 服务器:

http://dev.mysql.com/downloads/

于 2009-11-24T17:02:14.013 回答
7

对于希望嵌入 mysql 的任何人的未来参考,mysql 人员有一个实用程序可以执行此操作http://downloads.mysql.com/archives/c-mxj/

于 2010-07-30T16:14:40.970 回答
6

听起来您想要一个嵌入式数据库。虽然 MySQL 连接器看起来不错,但它会启动一个单独的服务器进程。如果您希望数据库服务器在 Java 虚拟机中运行,有几个 Java 嵌入式数据库。

我见过使用最多的两个是:

  1. 阿帕奇德比/ JavaDB
  2. 高级SQL
于 2009-11-24T17:12:50.887 回答