我运行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服务可以正常工作。
谁知道该怎么办?这是死路一条!这里有很多相同的问题没有答案。
答案 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应用程序中的第三方类库。