• 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运行出错

  • 相关阅读:
    进程的概念与结构
    http://goeasy.io/cn/
    java实现扫二维码登录功能
    java发送短信验证码的功能实现
    java实现注册邮箱激活验证
    开启POP3/SMTP服务
    java生成6位随机数字
    javamail实现注册激活邮件
    MySQL SQL语句 生成32位 UUID
    Data source rejected establishment of connection, message from server: "Too many connections"
  • 原文地址:https://www.cnblogs.com/shungdawei/p/8857574.html
Copyright © 2020-2023  润新知