Eclipse - MariaDB JDBC onnection问题(bug还是搞砸了什么?)

时间:2017-11-03 21:16:16

标签: eclipse jdbc mariadb

我开始学习Java EE,我决定在模拟"现实生产中开发我的小应用程序"环境:

我将开发和部署环境分离到笔记本电脑(使用Eclipse IDE)和服务器(带有Tomcat / TomEE和MariaDB的Raspberry Pi)。 在这种环境下,我不仅可以学习EE开发,还可以学习部署阶段。

问题

安装MariaDB后,我意识到MariaDB的JDBC连接器无法正常工作。我通过Generic JDBC (I used MariaDB's default connector)在Eclipse中成功建立了连接。 Ping服务器也是successful,但每个查询都返回void results

我尝试了以下查询:

  • show tables in dbName;
  • select * from tableName;
  • show databases;

当我尝试在新的JPA项目中从表中创建实体时,Eclipse没有提供任何表格。

有人可以帮我与MariaDB建立完整的工作联系。

我尝试了什么(直到这一刻,没有结果)?

  • 通过apt-get update更新了Raspbian系统,而且我在安装MariaDB后也做了同样的事情。
  • 尝试使用apt-get和dpkg安装MySql 5.6,但Raspbian Stretch上没有armhf版本
  • 在Eclipse的首选项/数据管理/连接/驱动程序定义中,我尝试安装MySql驱动程序而不是Generic JDBC
  • 在属性中(在“编辑驱动程序定义”中)尝试了以下连接URL:
    • jdbc:mysql://hostName:port/
    • jdbc:mariadb://hostName:port/
    • jdbc:mysql://hostName:port/dbName
    • jdbc:mariadb://hostName:port/dbName
    • jdbc:mysql://hostName:port/dbName?user=userName&password=password
    • jdbc:mariadb://hostName:port/dbName?user=userName&password=password
  • 也尝试过旧版本的JDBC连接器(mariadb-java-client-2.1.0.jar),但效果不佳。
  • 我在本地机器上安装了MySQL,我可以在Eclipse中成功连接它。
  • 我可以从本地安装的MySqlWorkbench.
  • 成功连接,创建,插入,更改MariaDB中的表
  • 我在本地计算机上安装了MariaDB。尽管ping在Eclipse中成功连接,但void查询结果与远程MariaDB连接相同。
  • 我安装了NetBeans来检查我是否可以将MariaDB与它的驱动程序连接起来。结果是SUCCESS (screenshot is attached)
  • 更奇怪的是:在Data Source Explorer中,MySQL和MariaDB之间的树结构不同(see the screenshot)

环境

服务器:

  • Raspbian Stretch(Debian 9.1)
  • Java:openJKD 1.8.0_141,OpenJDK Runtime Environment build 1.8.0_141-8u141-b15-1~deb9ul-b15,OpenJDK Zero VM build 25.141-b15-1~deb9ul-b15
  • MariaDB Ver 15.1 Distrib 10.1.23-MariaDB,for debian-linux-gnueabihf(armv71)

本地机器:

  • Windows 10 Pro 64bit,版本:1703,版本:15063.674(匈牙利语本地)
    • MySqlWorkbench 6.3CE,6.3.9 build 10690321 CE(64位)
    • Eclipse Neon.3 Release(4.6.3),Build id:20170314-1500
    • NetBeans IDE 8.2,Build 201705191307
    • Java:JDK 1.8.0_151(x86_64架构)
    • JDBC:mariadb-java-client-2.1.2.jar(这与NetBeans成功合作)

总而言之,在Eclipse中我可以通过Generic JDBC建立与MariaDB的连接,ping成功,但我无法从查询中获得任何结果(并且无法从表中生成实体)。

1 个答案:

答案 0 :(得分:0)

<强>解决: 在Eclipse中,您不必使用MariaDB的JDBC 2.1.2。连接器。它完全与MySQL兼容,只使用MySQL JDBC 5.1默认(mysql-connector-java-5.1.41-bin.jar)。现在它工作正常!