zoukankan      html  css  js  c++  java
  • mybatis 异常处理:Invalid bound statement (not found)

    mybatis 的使用过程中提示错误: 
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.msunsoft.mapper.HisLisReportMapper.getMaxMtcData

    含义:HisLisReportMapper的getMtcData方法没有找到或者没有绑定

    背景: 
    1.HisLisReportSyncWorker 控制类中

    String hospitalCode = ConfigRead.getValue("config.properties",
                        "HOSPITAL_CODE");
                List<Integer> updateIdList = new ArrayList<>();
                HisLisReportService hisLisReportService = (HisLisReportService) DataVisitorHolder
                        .getVisitorMap().get("hisLisReportService");
                HashMap<Object, Object> maxHisLisReportMap = hisLisReportService
                        .getMaxMtcData(hospitalCode);
                HashMap<Object, Object> map = hisLisReportService
                        .getMaxChangeVersion(hospitalCode);

    HisLisReportServiceImpl

    @Override
        @DataSource(name="blSql35")
        public HashMap<Object, Object> getMaxChangeVersion(String hospitalCode)
                throws Exception {
            // TODO Auto-generated method stub
            return hisLisReportMapper.getMaxChangeVersion(hospitalCode);
        }

    HisLisReportMapper 代码

    @Override
        public HashMap<Object, Object> getMaxChangeVersion(String hospitalCode)
                throws Exception ;

    HisLisReportService 代码

    @Override
        public HashMap<Object, Object> getMaxChangeVersion(String hospitalCode)
                throws Exception ;

    Mybatis.xml文件

     <select id="getMaxChangeVersion" parameterType="java.lang.String" resultType="java.util.HashMap">
            select
            max(sys_change_version) as MAXVERSION ,max(etl_id) as MAXID from
            ETL.DBO.ETL_CHARGE_RECORD where hospital_code=#{hospitalCode} and etl_table='lismain.lisdata.report_main'
        </select>
    
          <select id="getMaxMtcData" parameterType="java.lang.String" resultType="java.util.HashMap">
            select max(his_lis_report_id) as MAXID from his_lis_report where hospital_code=#{hospital_code}
         </select>

    错误处理流程: 
    我这里使用的SSM,spingMvc ,mybatis ,maven来构建项目,项目中使用了HisLisReportSyncWorker的控制类,HisLisReportServiceImpl代码实现,HisLisReportService接口类,HisLisReportMapper 的mapper类以及HisLisReportMapper.xml配置文件

    1.检查实现类中方法是否存在

    2。检查Service类的这个方法是否存在

    3.检查Mapper类的这个方法

    4.对应的mybatis 的配置文件是否存在,里面数据是否配置正确

    5.检查Mapper类是否被加载了

    这个错误主要是因为在config的配置文件中没有加载这个xml文件 

  • 相关阅读:
    父子组件双向通讯
    高德地图采坑实践之文本标记点击事件左半边不生效(已解决)
    高德地图 location字段控制台显示 为字符串类型 实际为对象
    允许长单词、数字、URL换行到下一行
    python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇
    python tkinter实现俄罗斯方块 基础版
    python递归三战:Sierpinski Triangle、Tower of Hanoi、Maze Exploring
    python(pygame)滑稽大战(类似飞机大战) 教程
    编辑器测试-TinyMCE
    封装cookie localStorage sessionStorage
  • 原文地址:https://www.cnblogs.com/firstdream/p/8094054.html
Copyright © 2011-2022 走看看