第一个问题:xml里面明明定义了方法A,但是通过IService接口调用A的时候,总提示无法将接口中定义的函数绑定到xml中的同名方法中(“Invalid bound statement (not found): com.aircas.sqlservice.mapper.SysTempIndexMapper.getRemoteStatusReportSerialNumber”),见下图。
网上很多解决方法都是查看函数名是否一致、命名空间等,但还有一种可能是你调用接口的模块本身的resource文件夹下就有一个含有xml的mapper文件夹,而这个文件夹里面不含有方法A的sql实现,如下图:
导致程序只在这个mapper里面找A的sql实现,那肯定会提示没有找到。
第二个问题:其它都是对的,但是程序提示“Parameter number 1 is not an OUT parameter”,如下图:
除了检查参数名、类型、IN/OUT类型是否和存储过程一致外,还要检查是否指定了这个方法所访问的数据库实例,如果所访问的数据库实例没有这个存储过程,同样会报这个错。这个地方加上这个DS注解,就能够正常调用了。