Mybatis框架的mapper接口中的方法名可以重载吗(mybatis mapper接口)

  本篇文章为你整理了Mybatis框架的mapper接口中的方法名可以重载吗(mybatis mapper接口)的详细内容,包含有mybatis和mapper怎么对应方法名 mybatis mapper接口 mybatis中mapper接口的工作原理 mybatis方法名一样 Mybatis框架的mapper接口中的方法名可以重载吗,希望能帮助你了解 Mybatis框架的mapper接口中的方法名可以重载吗。

  这个就要从Mybatis框架中mapper接口的工作原理说起

  Mybatis中mapper接口的工作原理是JDK动态代理,Mybatis运行时会使用JDK动态代理为mapper接口生成对应的代理对象,代理对象会拦截接口方法,然后根据全路径名+方法名的策略将这个字符串保存。例如一个mapper接口的全路径为:com.dao.TestMapper,方法名:findById,全路径名+方法名:com.dao.TestMapper.findById;

  Mybatis中mapper.xml映射文件中的select、insert、update、delete标签会被解析成一个个MapperStatement对象,对象名称就是mapper.xml文件中的namespace的值+标签中的id的值。例如一个mapper.xml映射文件中的namesapce的值为:com.dao.TestMapper,标签 select id="findById" ;那这个标签的MapperStatement对象名称就是:com.dao.TestMapper.findById;

  动态代理对象根据保存的接口全路径名+方法名的字符串反射调用到对应的MapperStatement对象,并执行其sql,并将执行结果返回。

  简单来说就是接口全路径+接口方法名与映射文件中namespace值+标签的id值是一一对应。mapper.xml映射文件标签的id是不能出现重复的,即id值唯一,如果接口中的方法出现重载,那么就会导致传入的参数与匹配的标签sql中的参数不一致,致使执行sql时报错。

  

  以上就是Mybatis框架的mapper接口中的方法名可以重载吗(mybatis mapper接口)的详细内容,想要了解更多 Mybatis框架的mapper接口中的方法名可以重载吗的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: