如何在Java应用程序中嵌入MySQL数据库

如何在Java应用程序中嵌入MySQL数据库,java,mysql,web-applications,java-native-interface,Java,Mysql,Web Applications,Java Native Interface,过去,您可以使用Connector/MXJ将MySQL数据库嵌入到Java应用程序中,但是Connector/MXJ项目已经被Oracle终止(感谢Larry),因此我正在寻找实现我的目标的最佳方法 我们的应用程序附带了一个嵌入式Tomcat和JRE,我们也希望嵌入MySQL数据库(不要问我们是否可以使用其他数据库引擎——它必须是MySQL)。我找不到任何关于最佳方法的好文档或答案,因此以下是我的想法: 只需启动可执行文件,作为应用程序启动脚本的一部分启动mysqld 在libmysqld周围

过去,您可以使用Connector/MXJ将MySQL数据库嵌入到Java应用程序中,但是Connector/MXJ项目已经被Oracle终止(感谢Larry),因此我正在寻找实现我的目标的最佳方法

我们的应用程序附带了一个嵌入式Tomcat和JRE,我们也希望嵌入MySQL数据库(不要问我们是否可以使用其他数据库引擎——它必须是MySQL)。我找不到任何关于最佳方法的好文档或答案,因此以下是我的想法:

  • 只需启动可执行文件,作为应用程序启动脚本的一部分启动mysqld
  • 在libmysqld周围编写/使用JNI包装器,以便在应用程序启动时启动服务器,并在应用程序停止时停止服务器(这是首选方法)

对于第二个(首选)选项,我认为围绕libmysqld调用编写JNI包装不会太困难,但是我想知道这是否可行,因为libmysqld仅提供对同一进程中运行的代码的访问(没有命名管道或tcp访问)。在运行的java应用程序中启动的进程是否允许父应用程序访问数据库

也许试试这个。它是为MariaDB设计的,这可能还可以,或者它甚至可以与MySQL一起工作,因为它们应该在很大程度上兼容