昨天在为公司的项目配置redis存放ssm中mybatis的二级缓存。万事俱备,只差调试时,出了个bug,程序运行到一半就不动了,但是没有报错,而控制台也只打印了一点点信息,打印如下:
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@30c786fc] was not registered for synchronization because synchronization is not active
Cache Hit Ratio [com.zhiliaotang.dao.QqunDao]: 0.0
好吧,其实这三行信息都可以忽略,第二行大概是说事务配置问题,第三行是redis缓存命中率的信息,都跟bug无关。
我在网上照着这个控制台信息搜了好久,大概都是说的是spring和springmvc的扫描包配置有重复,或者事务配置问题。我也跟着那些博客搞了好久,但没有一点改观。于是在htc的建议下,将ssm分开,用mybatis测试问题所在。
经过一番测试,在用mybatis单独测试的时候,发现了问题所在,并不是一个什么高级错误。却是一个神坑。所以解决了问题也没有成就感。艹。
原因
在db.properties里配置的username和passowrd是以前的一个项目的账户,那个账户的权限只有一个sms数据库,而那个账户没有我当前测试的xzl数据库的权限。
解决
新建了一个有当前测试库权限的数据库用户,或者直接用root来测试。
网友评论