问题:最佳实践中,通常一个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不能重复。敬请期待哦!
本文探讨了XML映射文件中Dao接口方法的重载限制,解释了为何Mapper接口中的方法不能在映射文件中根据参数差异进行重载,并提供了实际例子和常见错误提示。同时,强调了Dao接口内重载方法在实际应用中的可行性。
297

被折叠的 条评论
为什么被折叠?



