SSM整合时报错org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'woshin'@'localhost' (using password: YES))
### The error may exist in ssm/mapper/ItemsMapper.xml
### The error may involve ssm.mapper.ItemsMapper.selectByPrimaryKey
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested 

最近在做springmvc-spring-mybatis的整合,然而,一个小的问题造成了我一上午的困惑啊。最后发现问题很蠢,但是还是拿出来,希望为大家有类似的问题的时候有个借鉴。

@Test测试方法时,控制台报出cannotGetJdbcConnectionException这个异常,开始我以为是我的spring中applicationContext.xml中的bean标签id不匹配,检查了一遍又一遍,但是问题依然存在。我又坚持按照执行的过程,发现好像是我的配置文件路径有问题,于是改成了如下。

"classpath:spring/applicationContext-dao.xml"

然后发现,也不是。。。。绝望啊,百度了一下,发现有类似的问题  😄😄。

SSM 框架中配置文件提示错误:

Error querying database.  
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; 
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver  '

遇到这个异常,并花了不少时间。

异常:org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver '

不能加载驱动。

这个异常原因:

  1. mysql驱动没有找到:解决方法,到oracle下载mysql对应版本的驱动,

    下载什么版本的mysql驱动呢? mysql官网已经有说明了。

    mysql5.x基本选择 mysql connector/j 5.1以上就ok。也是mysql推荐我们使用的驱动。mysql5.0以后版本不再兼容以前的版本。

    在项目中的lib导入mysql connector/j 5.1+ 和在tomcat/lib里面加入mysql connector/j 5.1+

  2. 还有什么原因出现上述异常呢?

如:(1).jdbc.driver=com.mysql.jdbc.driver 

 drivername应该是com.mysql.jdbc.Driver这样才正常。
(2).jdbc.driver=com.mysql.jdbc.Driver(这里可能有空格)   在驱动后面带了空格之类,我遇到属于这类。

额额,看了一下忙检查我的是不是也有类似的问题,然儿,白瞎,,,。 💪

第一遍没看出来啥猫腻,一切正常,所有配置文件都自己加载了,并且都执行了,但是在最后返回的时候是空指针,不能创建sqlsessionfactory,没办法仔细阅读一遍吧,然后,,让我发现了他的小秘密,😄😄

错误所在

原来org.springframework.core.env.PropertySourcesPropertyResolver,这个类会去加载你的各项属性,但是他先会去你的环境属性去寻找,再去系统属性去寻找,然后再去系统环境去寻找,如果这期间找到了与property 标签里的name相匹配的key则不继续寻找直接return,否则 return  null,并在本地properties开始寻找。。。这就明了了。。原来我的本地系统用户名,username与property 标签里的name一样,被抓取出来了,都没执行到本地的db.properties文件。。

于是,我改了applicationContext.xml中的property的name属性为name,并将db.properties也改为name。当然,结果是:成功了。😄😄

问题虽然很智障,当时也是没仔细看看报错信息,

Access denied for user 'woshin'@'localhost' (using password: YES)

user并不是localhost而是'woshi'@'localhost',不然早就解决了。。但是,有没有大牛知道怎么能指定让他去找本地的properties文件,而不用把名改掉么??求指教啊!

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栋幺栋幺-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值