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

  • Post author:
  • Post category:其他


问题:最佳实践中,通常一个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不能重复。敬请期待哦!



版权声明:本文为qq_57751960原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。