Mybatis异常处理之MySQL Connector Java] will not be managed by Spring

很长时间没写后台代码有点生疏了,这不今天又出点小插曲,写个文章记录下。

由于要上传点数据到后台,顺手整了个mybatis+springmvc。在保存数据时出现了异常。

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@71670c91] was not registered for synchronization because synchronization is not active
JDBC Connection [jdbc:mysql://localhost:3306/statsdb?useUnicode=true&characterEncoding=UTF-8, UserName=root@localhost, MySQL Connector Java] will not be managed by Spring
==>  Preparing: insert into record_info 
==> Parameters: 
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@71670c91]

看提示还以为事务啥的有问题,一通资料查找处理后,发现问题还在。

于是换postman调试接口,看看具体什么错误

 

BadSqlGrammarException

有点懵逼,SQL都是generator生成的。抱着怀疑的态度,xml中的SQL改的简单点 insert into record_info (model) values ('xx'),运行居然成功。果然是这块有问题,于是继续改SQL,改成参数形式:insert into record_info (model) VALUES (#{model,jdbcType=VARCHAR}),运行成功发现没值。这时感觉有点不对,值肯定传了啊。于是查看赋值代码,这一看发现问题了,忘了提取data数据进行转换,改正后还原xml代码,运行成功...

if (!StringUtils.isBlank(body)) {
       //错误的写法
       //RecordInfo recordInfo = getGson().fromJson(body, RecordInfo.class);

       //改正后写法
            JsonParser jsonParser = new JsonParser();
            JsonElement ele = jsonParser.parse(body);
            JsonElement jo = ele.getAsJsonObject().get("data");
            RecordInfo recordInfo = getGson().fromJson(jo, RecordInfo.class);            
            if (recordInfo != null) {
                reportService.addPosRecordInfo(recordInfo);
            }
       }

  

 

结论:由于参数赋值有问题,导致SQL运行出错

 

转载于:https://www.cnblogs.com/shungdawei/p/8857574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值