当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Java,MySQL:有没有办法用Java程序嵌入MySQL服务器?》经验,为你挑选了4个好方法。

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

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



1> Legend..:

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

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


对于其他任何人在给出这个答案很久之后,MXJ停止了MySQL版本5.1.40,Connector/J版本5.0.11的开发.请参见http://dev.mysql.com/doc/connector-mxj/en/connector-mxj-versions.html

2> Simon Baars..:

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

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

由于它完全没有任何必须在用户的PC上的要求,它可能是嵌入MySQL的最佳选择.将不使用嵌入式数据库的项目转换为MariaDB4j就像调用一样简单:

DB db = DB.newEmbeddedDB(3306);

阅读github页面以获取更多信息.Maven中心依赖是:


    ch.vorburger.mariaDB4j
    mariaDB4j
    2.2.3

如果您介意使用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)的测试矩阵.



3> zcourts..:

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


请注意,MySQL Connector/MXJ的开发已经停止.

4> Steve K..:

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

我见过的最常用的两个是:

    Apache Derby/JavaDB

    HSQL


根据HSQL测试使用Oracle的生产系统,我遇到了很糟糕的经历.行为上的差异导致测试特定的黑客攻击或更糟糕的,从未编写的测试用例,因为它太麻烦了.我认为创建一个尽可能接近真实事物的测试环境比任何事情都重要.使用一些额外的系统资源通常是非常可接受的权衡.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有