错误:SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5209b429] was not registered for

错误:SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5209b429] was not registered for synchronization because synchronization is not active
现象:在做SSM整合项目时,遇见上述错误,项目能够运行,但是会遇见下面这种情况在这里插入图片描述
即页面无法跳转,检查状态发现,请求状态正常,如下图:
在这里插入图片描述
但是在output中没有错误提示。最后,在mybatis-config.xml中,添加日志,才能显示上述错误。

    <settings>
        <!--标准日志工厂实现STDOUT_LOGGING,不需要导包-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--LOG4J的实现-->
    <!--    <setting name="logImpl" value="LOG4J"/>-->
    </settings>

在这里插入图片描述
最后,经过debug发现,这是由于NullPointerException导致的。
在这里插入图片描述
具体原因:在数据库中,将表的id字段设置为自增长,并且不为null.
在这里插入图片描述
但是在插入数据时,只插入了name和value字段,id默认为null,这与数据库中(id不为null)冲突。
在这里插入图片描述
在这里插入图片描述
解决过程:关于数据库中有自增主键时如何插入数据?
发现自己的插入语句,并没有写错。发现是忘记加参数类型,但是仍然会报一样的错误。
在这里插入图片描述
最后,发现根据
在这里插入图片描述

STDOUT_LOGGING日志没什么作用,将日志改为LOG4J,出现以下错误在这里插入图片描述
在这里插入图片描述
循环出现这个问题(会导致dubbo调用服务连接超时,从而找不到服务):

18:58:10.177 [Druid-ConnectionPool-Create-444276457] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://localhost:3306/mybatis?useSSl=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user '�鑫'@'localhost' (using password: YES)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.18.jar:?]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.18.jar:?]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.18.jar:?]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.18.jar:?]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.18.jar:?]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.18.jar:?]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) ~[mysql-connector-java-8.0.18.jar:?]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1570) ~[druid-1.1.13.jar:1.1.13]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1636) ~[druid-1.1.13.jar:1.1.13]
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2550) [druid-1.1.13.jar:1.1.13]

即mysql连接错误errorCode 1045, state 28000
mysql数据库errorCode 1045, state 28000
在每个配置信息前面加上 jdbc.成功解决问题
在这里插入图片描述

在这里插入图片描述

  • 18
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值