向大佬学习!「mybatis 查询匹配机制」,手动点赞

第一种查询方式匹配机制
如何找到我们想要的 sql 语句

第一步:先匹配 sqlsqssion 所在的 MybatisUtil.java

第二步:去匹配 mybatis-config.xml

匹配 mappers 中的所有的 xml 文件的 namespace,如 dao.RoleDao,再匹配 sql 语句的 id
注意:如果这些 xml 文件之中有相同的 namespace,接着去匹配 id,如果 id 再相同,就会出现错误,系统不知道要匹配哪个
第二种查询方式匹配机制

利用反射去找 RoleDao 接口的 class 对象及其接口所在路径如 dao.RoleDao,然后利用反射找到接口的 getUserByRole 方法名字并传参正好拼接成 dao.RoleDao.getUserByRolegetMapper 匹配机制例如先找 namespace=“dao.RoleDao”,再找 id="getUserByRole"然后利用第一种方式的匹配机制去匹配对应的 sql 语句

小编整理了一份 Java 基础视频、技术文档、电子书、面试题、简历模板等福利分享给大家。

评论