Mybatis框架---Dao接口里面方法能重载吗?

本文探讨了XML映射文件中Dao接口方法的重载限制,解释了为何Mapper接口中的方法不能在映射文件中根据参数差异进行重载,并提供了实际例子和常见错误提示。同时,强调了Dao接口内重载方法在实际应用中的可行性。
摘要由CSDN通过智能技术生成

问题:最佳实践中,通常一个xml映射文件,都会写一个Dao接口与之对应,当Dao接口里面的方法,参数不同时,方法能重载吗?

答案是:首先我们先说说什么是重载,重载就是方法名相同,参数类型和参数个数不同。那么对于这个问题我们要知道,能在Dao层重载,但是在xml映射文件中是不能重载的,那么为什么不能在映射文件重载呢?

因为当我们设置一个xml文件中mapper属性,如果mapper属性下面配置了namesapce值,那么你执行的增,删,改和查询所使用的id就是唯一的,不能重复。

一般情况下我们是把Dao接口的方法名作为id,如果你在xml映射文件中使用了重载,那么我们只会使用相同的id,所以就会报错。错误如下图:说"ArgumentException:映射语句集合已包含org.lanqiao.dao.StudentDao.insertStudent的值。"

但是如果你只是在Dao接口里面重载了,在xml映射文件的id只调用了一个dao接口的一个方法,是能执行的。在测试类里面是可以调用Dao接口里面的两个重载后的方法。

 

因为我数据库没有 男 所以查询不出来,我只是为了测试Dao层里面是可以重载的。

 下一篇讲解为什么id不能重复。敬请期待哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值