本文章写于本人刚接触《Java EE企业级应用开发教程 Spring+SpringMVC+Mybatis》一书到看完第一章"初识MyBatis框架"
第一种报错
报错代码
org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
The error may exist in mapper/UserMapper.xml
The error may involve com.itheima.pojo.User.findById
The error occurred while executing a query
Cause: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
解决方法
这报错大概就是没有连接mysql,经检查,是src/main/resources下的mybatis-config.xml以及src/main/resources下的db.properties中的mysql的密码不对
将这两处root改为自己的mysql的密码就对了
第二种情况
报错代码
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.itheima.mapper.UserMapper.findById
解决方法
自己粗心,把本来应该在src/test/java下的Test包(其中有我写的UserTest.java)放到src/main/java下了
第三种情况
报错代码
解决方法
问题依旧还是没有连接到数据库,问题出现在UsersTest.java中的数据库连接相关配置没有填,别傻乎乎的看教程里写的是${driver}那些的,那是给你填配置的地方,不是教程写啥你写啥
把该配置的地方按要求填好和db.properties一样的配置,问题就解决了
总结
其实还有一种情况是敲的代码里有几个单词差一个字母,就另说,但实际上是上面这四种情况一起出现的,幸亏有耐心,总算解决了
但是在最后我发现即使db. properties中的mysql的密码没有改,也不影响UserTest.java的运行,可是mybatis-config.xml里的密码改了后依旧会报错
追加
(写于读到了第二章)
最后虽然得到了结果
但是还有有一个警告,上网查后说是没有加useSSL=false,但是我发现我写了,既然得到我想要的结果,这个警告我也没管了
直到我读到第二章,发现value = ${mysql.driver}等这一系列这样的配置是可以动态获取db.properties文件中的数据库连接信息的,我才知道上面的第三种情况是我自己没写对,然后我试着改成下图的样子,之后莫名奇妙的,警告就没有了(没懂)