前提:mysql的驱动jar包和Druid的jar是对应的,且与我windows上安装的mysql8.0.26是相对应的,
过程:
1.最开始报的是nullPointerException异常,
原因:程序找不到Druid的配置文件,因为我把它放在src下,但实际,这个项目我使用了maven来构建,在maven中,classpath的根目录其实是
resources文件夹,
解决方法:把Druid的配置文件放在resourses目录下,借鉴了以下链接:
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《关于properties报空指针异常的原因》, 一起来围观吧 https://blog.csdn.net/gsy_csdn1/article/details/115489925?utm_source=app&app_version=5.4.0
2.解决完空指针异常,报出了Access denied foruser 'root'@'localhost'(using password:yes)
解决过程:
1.一直认为是url问题,因为我的url=jdbc:mysql://localhost:3306/itheima,并不是url=jdbc:mysql://localhost:3306/ithiema?useSSLfalse&
serverTimezone=UTC....
这个问题的解决:并不是url的问题,原本的url没有问题
2.后认为是mysql没有开启远程访问权限
解决:在cmd上开启权限,借鉴了以下笔记:
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《mysql8.0.15用户root登录开启远程访问权限》, 一起来围观吧 https://blog.csdn.net/liliuqing/article/details/88723409?utm_source=app&app_version=5.4.0
其中,我发现我的mysql有2个root用户,一个用户已经开启了远程访问权限,即host为%,但另一个root没有开启,host为localhost。
我把未开启的远程权限的root用户删除了,借鉴了以下笔记:
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《MySql存在多个root用户.》, 一起来围观吧 https://blog.csdn.net/qq_24571549/article/details/74439474?utm_source=app&app_version=5.4.0
3.最后,通过debug程序发现username=null,即以下
出现这种情况的原因是:我的druid配置文件为name=root,程序识别不出数据库的使用者,
解决方法:name= root改为username=root
借鉴了以下笔记:
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《java报错:com.alibaba.druid.pool.DruidDataSource.info {dataSource-1} inited》, 一起来围观吧 https://blog.csdn.net/u012660464/article/details/110236485?utm_source=app&app_version=5.4.0
4.当程序成功运行之后,再次运行出现了"Duplicate entry '4' for key 'user.PRIMARY'"
原因:因为我的sql语句为insert into user values(4,'斩杀','234'),即4是user表id的值,id是主键,自动增长的
解决:把4给为user表中id不存在的值,或者把4改为null,让程序自动为这行数据的id赋值



