java.sql.SQLException:当REST尝试连接到DB时,没有合适的驱动程序

时间:2017-08-07 20:44:35

标签: java mysql tomcat jdbc

我运行Java REST项目(带有Maven框架支持的IDEA),部署成功, 但是当我打电话给服务时,我得到一个奇怪的SQLException: “发生SQL异常:java.sql.SQLException:没有为jdbc找到合适的驱动程序:mysql:// localhost:3306 / hh_parser”

我对pom.xml有依赖性:

<dependency>
     <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.7-dmr</version>
</dependency>

mysql-connector-java added in WEB-INF/lib

在p:\ tomcat \ lib \

中添加了

和mysql-connector-java-8.0.7.jar

但它对我没有帮助!

如果我评论数据库的使用,REST服务可以正常工作。

谁知道该怎么办?这是死路一条!这里有很多相同的问题没有答案。

2 个答案:

答案 0 :(得分:1)

如果您未在应用程序中注册驱动程序,则会出现此错误。

如果你这样写了

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hh_‌​parser","rootpwd", "123");

尝试下面的

Class.forName("path.to.your.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hh_‌​parser","rootpwd", "123");

DriverManager.registerDriver(new com.mysql.jdbc.Driver ());

答案 1 :(得分:0)

考虑到您使用的是正确版本的MySQL Connector / J jar,您需要将jar既添加到CLASSPATH环境变量又添加到TOMCAT_HOME \ lib文件夹。

根据可用的文档here,您需要完成这些设置以便使用MySQL JDBC连接。

  

您可以在Unix,Linux或OS X下为用户的.profile.login或其他登录文件中的用户在本地设置CLASSPATH环境变量,或者也可以通过全局设置它编辑全局/etc/profile文件。

     

例如,使用以下表单之一将Connector/J驱动程序添加到CLASSPATH,具体取决于您的命令shell:

  # Bourne-compatible shell (sh, ksh, bash, zsh):
    shell> export CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH

  # C shell (csh, tcsh):
    shell> setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
     

对于Windows平台,您可以通过“系统控制面板”设置环境变量。要将MySQL Connector / J与GlassFish,Tomcat或JBoss等应用程序服务器一起使用,请阅读供应商的文档以获取有关如何配置第三方类库的更多信息,因为大多数应用程序服务器会忽略CLASSPATH环境变量。

     

如果您正在开发servlet或JSP,并且您的应用程序服务器符合J2EE,则可以将驱动程序的.jar文件放在webapp的WEB-INF/lib子目录中,因为这是一个标准位置。 J2EE Web应用程序中的第三方类库。