zoukankan      html  css  js  c++  java
  • 代码部署后,所有数据库操作报Invalid bound statement,原来是打包的问题

    [问题描述]

    前段时间将打包后的代码部署到测试环境运行,结果所有对数据库操作的代码报错,如下所示:

    Invalid bound statement (not found): com.xxcloud.dao.UserMapper.getKeysInfo,
    [org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:225),
    org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48),
    org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65),
    org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58),
    com.sun.proxy.$Proxy147.getKeysInfo(Unknown Source),

    这个错误眼熟,就是mapper字段绑定异常。可以肯定的是,就是我部署前,代码都是在正常运行的。那么,我推断,跟我打包有关系,肯定是什么地方的配置有问题。

    同时,叫另外一个同事重新打包部署,果然是OK的。这印证了我的推断。

    将可以运行的包下载到本地,解压后,跟我本地打的包进行对比,主要有三个地方:

    1、所有的Mapper.xml文件是不是有打包进去。

    2、配置文件中的是否有配置扫描mapper文件

    mybatis-plus.mapper-locations
    

    3、我们的配置文件都是分成dev、pro、test三份的,所以检查有没被引入。

    经过对比发现,果然有问题。

    同事的配置是这样的

    spring.profiles.active=devw 

      

    我的配置是这样的

    spring.profiles.active=@spring.profiles.active@
    

      

    这明显不对,但是我又不知道到底为什么变量“@spring.profiles.active@”没有替换为dev。

    在网络上换着关键词查,当我看到下面这个图时,突然想起来,前段时间我在引入jar包的时候,曾经修改过这个配置。  

    勾选dev,再次打包,果真跟同事的一样了。




    ----------------------------------------------------------------------------
    我的小鱼你醒了,
    还认识早晨吗?
    昨夜你曾经说,
    愿夜幕永不开启。
    你的香腮边轻轻滑落的,
    是你的泪,还是我的泪?
    初吻吻别的那个季节,
    不是已经哭过了吗?
    我的指尖还记忆着,
    你慌乱的心跳。
    温柔的体香里,
    那一缕长发飘飘。
  • 相关阅读:
    php 不依赖数据实现删除图片,核心代码
    php插入htm htm插入php的变量
    php 删除指定文件 glob,unlink
    glob函数 循环遍历子目录下的文件
    对函数及递归的通俗理解
    glob 遍历函数
    修改 ueditor1_4_3-utf8-php 它的图片上传地址
    thinkphp 自动跟新时间
    用Hadoop构建电影推荐系统
    Hive导入10G数据的测试
  • 原文地址:https://www.cnblogs.com/liuyp-ken/p/14867111.html
Copyright © 2011-2022 走看看