IDEA中web项目JSP连接数据库的注意事项,解决一系列报错如:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

本文总结了在IDEA环境下使用JSP连接数据库时常见的三个问题:jar包放置错误、JDBC驱动版本不匹配及连接参数设置不当。通过调整jar包位置至WEB-INF/lib、确保JDBC驱动与MySQL版本一致以及正确设置SSL和时区参数,可有效解决数据库连接难题。

IDEA中jsp连接数据库注意事项

第一点

报错:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

今天用IDEA 来写web实验购物网站时,刚开始写到用jsp连接数据库,就出现问题,一遍一遍的检测代码,重新导入jar包,就是连接不了数据库。

最后查阅资料后,才明白,原来是我的jar包放错位置,应该放在WEB-INF目录下的lib文件夹

错误位置
错误位置
正确位置
复制jar包放在lib文件夹中,点击jar包添加到库中即可
在这里插入图片描述

第二点

在做购物网站的时候,偷懒的我从github上找了一个项目,来使用,所以在导入别人的项目后,出现jdbc的jar包版本和我电脑安装mysql版本不一致,这导致可以装载jdbc驱动但是连接数据库失败,有些时候可能不会出现问题,但是最好避免这个问题。
(我在我的电脑上加上遇到这个苦逼的问题,加上前面的问题,导致我大半天的时间都在搞这个)
版本最好一致
我安装的MySQL版本是8.的,所以连接jdbc驱动如果用5.的就会出错,而无法连接数据库
在这里插入图片描述

第三点

较新版本的驱动连接时还要注意:
连接数据库时需要指明是否进行SSL连接和服务器时区(时区必须指明)

解决方案: 在mysql连接字符串url中加入ssl=false(或者true,默认为true)&&serverTimezone=时区。

如下图所示:
在这里插入图片描述

总结

目前来说搞定这三点应该在连接数据库上是基本没有问题的了
错误请指出!
feng,加油,继续学习。

"C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\jbr\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=52419:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\plugins\junit\lib\junit5-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\plugins\junit\lib\junit-rt.jar;C:\edu_work\lagou_edu_home\target\test-classes;C:\edu_work\lagou_edu_home\target\classes;C:\software\maven\repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;C:\software\maven\repository\javax\servlet\jsp\jsp-api\2.2\jsp-api-2.2.jar;C:\software\maven\repository\junit\junit\4.13\junit-4.13.jar;C:\software\maven\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\software\maven\repository\commons-beanutils\commons-beanutils\1.8.3\commons-beanutils-1.8.3.jar;C:\software\maven\repository\commons-dbutils\commons-dbutils\1.6\commons-dbutils-1.6.jar;C:\software\maven\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\software\maven\repository\mysql\mysql-connector-java\5.1.37\mysql-connector-java-5.1.37.jar;C:\software\maven\repository\com\alibaba\druid\1.0.9\druid-1.0.9.jar;C:\software\maven\repository\com\alibaba\fastjson\1.2.3\fastjson-1.2.3.jar;C:\software\maven\repository\com\colobu\fastjson-jaxrs-json-provider\0.3.1\fastjson-jaxrs-json-provider-0.3.1.jar;C:\software\maven\repository\commons-io\commons-io\1.4\commons-io-1.4.jar;C:\software\maven\repository\commons-fileupload\commons-fileupload\1.2.1\commons-fileupload-1.2.1.jar;C:\software\maven\repository\org\projectlombok\lombok\1.18.0\lombok-1.18.0.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.lagou.dao.TestCourseDao,testFindCourseList 11月 19, 2025 4:49:41 上午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl error 严重: dataSource init error java.sql.SQLException: com.mysql.cj.jdbc.Driver at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:520) at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:583) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:915) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:911) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:98) at org.apache.commons.dbutils.AbstractQueryRunner.prepareConnection(AbstractQueryRunner.java:204) at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:287) at com.lagou.dao.impl.CourseDaoImpl.findCourseList(CourseDaoImpl.java:31) at com.lagou.dao.TestCourseDao.testFindCourseList(TestCourseDao.java:16) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58) Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:518) ... 33 more 11月 19, 2025 4:49:41 上午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info 信息: {dataSource-1} inited java.sql.SQLException: com.mysql.cj.jdbc.Driver at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:520) at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:583) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:915) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:911) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:98) at org.apache.commons.dbutils.AbstractQueryRunner.prepareConnection(AbstractQueryRunner.java:204) at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:287) at com.lagou.dao.impl.CourseDaoImpl.findCourseList(CourseDaoImpl.java:31) at com.lagou.dao.TestCourseDao.testFindCourseList(TestCourseDao.java:16) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58) Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:518) ... 33 more null
最新发布
11-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值