tomcat连接数据库异常:java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

使用Tomcat连接mysql时,完成配置,打开浏览器访问,结果提示500的状态码,下面是提示信息:

org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl.error(JakartaCommonsLoggingImpl.java:38) Could not get a databaseId from dataSource 
java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'          //这里就是提示无法加载jdbc驱动
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseProductName(VendorDatabaseIdProvider.java:76)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseName(VendorDatabaseIdProvider.java:61)
at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseId(VendorDatabaseIdProvider.java:49)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:395)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:295)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)  
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:615)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1229)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

总的来说,就是提示无法加载jdbc数据库驱动,一般是没有添加jar文件,即数据库驱动jar文件

上网搜了一下,看来是需要下载MySQL Connector/J(用于连接mysql和java,官网下载地址),

浏览器下载下来之后使用lrzsz将 mysql-connector-java-5.1.46.tar.gz 这个包传到linux机器上,然后解压出来两个jar包:

mysql-connector-java-5.1.46-bin.jar

mysql-connector-java-5.1.46.jar

将这两个包放到 /usr/local/tomcat/lib/ 目录下面,然后重启tomcat服务

关闭防火墙,使用浏览器访问

这里写图片描述

访问成功,这和我直接使用mysql命令行查看到的结果一致:

[root@localhost logs]# mysql -ujava -paminglinux -h127.0.0.1 java_test -e "select * from aminglinux"  
 Warning: Using a password on the command line interface can be insecure.  
 +------+------+
| id   | name |
+------+------+
|    1 | abc  |
|    2 | aaa  |
|    3 | ccc  |
+------+------+

除了上面没有下载对应版本的mysql驱动之外,可以还有两种情况:
(1).jdbc.driver=com.mysql.jdbc.driver
drivername应该是com.mysql.jdbc.Driver这样才正常。

(2).jdbc.driver=com.mysql.jdbc.Driver(这里可能有空格) 在驱动后面带了空格之类,必须要删除多余的空格。

猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/81080913