Java,MySQL:有没有办法用Java程序嵌入MySQL服务器?

时间:2009-11-24 16:58:23

标签: java mysql embedded-database

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

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

4 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:9)

如果您不介意使用MariaDB(MySQL的开源变体,基本上是相同的),MariaDB4j可能是生产环境的完美选择。

  

MariaDB4j是一个Java(!)"启动器"对于MariaDB("向后   兼容,直接替换MySQL(R)数据库服务器",请参阅   FAQ和Wikipedia),允许您使用Java中的MariaDB(MySQL(R))   没有任何安装/外部依赖。再读一遍:你这样做   不必在系统上安装MariaDB二进制文件即可使用   MariaDB4j!

因为它完全没有任何要求必须在用户身上工作' pc它可能是嵌入MySQL的最佳选择。将没有使用嵌入式数据库的项目转换为MariaDB4j就像调用一样简单:

DB db = DB.newEmbeddedDB(3306);

Read the github page for more information. Maven中心依赖是:

<dependency>
    <groupId>ch.vorburger.mariaDB4j</groupId>
    <artifactId>mariaDB4j</artifactId>
    <version>2.2.3</version>
</dependency>

如果您介意使用MariaDB,另一个选项是Wix Embedded MySQL

Wix Embedded MySQL是一个提供在集成测试中运行真实MySql的方法的库。

  

为什么?

     
      
  • 您的测试可以在类似生产的环境中运行:匹配版本,编码,时区,数据库/架构/用户设置;
  •   
  • 比手动安装正确的版本更容易,更容易;
  •   
  • 您可以在没有任何本地设置的情况下为每个项目使用不同的版本/配置;
  •   
  • 支持多种平台:Windows,Linux和OSX;
  •   
  • 提供不断更新的MySql多个版本 - 5.5,5.6,     5.7;
  •   
  • 所有支持的操作系统(x86 / x64)和版本(5.5,     5.6,5.7)。
  •   

答案 2 :(得分:7)

为了将来参考任何想要嵌入mysql的人,有一个来自mysql人的实用工具http://downloads.mysql.com/archives/c-mxj/

答案 3 :(得分:6)

听起来你想要一个嵌入式数据库。虽然MySQL Connector似乎很好,但它将启动一个单独的服务器进程。如果您希望数据库服务器在Java虚拟机中运行,那么Java有几个嵌入式数据库。

我见过的最常用的是:

  1. Apache Derby / JavaDB
  2. HSQL