myBatis查询dao的循序

这次项目中,在配置多个jdbc的数据源时,当用通配符表示dao的路径时,如果第一个数据源的dao路径包含第二个或第三个数据源的dao路径,控制器在寻在对应的dao时,会报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ppp.user.dao.IUserDao.selectByPrimaryKey

明明这个dao是存在的,但是为什么找不到呢?

经过测试,发现控制器在寻找dao时,默认从第一个数据源开始,如果第一个数据源的dao路径包含了IUserDao(第二个数据源的dao)的路径,但是对应的mapper.xml文件却不在这个路径下时(理论上也不应该在),myBatis就会以为这个dao是第一个数据源的dao,但是没有对应的mapper.xml文件,故就会报这个错了。

 

解决办法:

1、可以将扫描范围小的数据源放在前面

2、可以将公共的数据源放在项目的外层包下面,其他的放在内层包下面

3、(猜想)配置文件的扫描路径写多个,这个没尝试过,待实现了再来编辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值