最近在做一个慕课网的练习,前期一直跟着视频里面的内容去写!无论是依赖、配置文件和Java代码。到后面写完第一个接口后发现跟数据库连不上。纠结了很久不得已请教大神才发现问题的所在!
在此记录一下:
第一次测试报了这个错误,我检查了一下我的配置文件,当时的配置文件内容如下:
server.port=8082
server.servlet.context-path=/demo
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=/localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL-false
jdbc.username=root
jdbc.password=root
#Mybatis
mybatis_config_file=mybatis-config.xml
mapper_path=/mapper/**.xml
entity_package=com.imooc.demo.entity
起初判定问题出在jdbc.driver那里,因为慕课的那个项目距离现在已经比较久了,所以可能存在版本迭代的问题。最后我按网上查到的答案,修改了jdbc.driver
jdbc.driver=com.mysql.cj.jdbc.Driver
修改完后再次运行,运行时无报错,唯有在输入网址进行测试的时候才会开始报错。
以下是第二次报错。
与第一次报错相比,很明显解决了一个问题。
但是此次报错在网上都没有搜到具体的解决方法。无奈只能求救大神。
大神说是我配置文件中jdbc.url的问题,我配置文件中的写法是版本比较旧的写法了!于是让我去搜了mysql8.0的url写法,参照网上的写(此处顺带把mysql依赖的版本更新为8.0版本):
原来的写法是:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=/localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL-false
修改后的写法是:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
这次修改后再运行就成功了!
本次的错误总结出2点:
1.出现这种类似的问题的时候要优先检查配置文件,检查driver和url的书写格式。版本的迭代会导致书写格式不一致。
2.依赖跟所书写的版本格式要对得上号!别变成依赖是7.0然后网上搜的又是8.0的书写格式,如果版本更新没有更新书写格式还好,不然一样会报错。书写格式和依赖版本一定要相对应。