在 MyBatis 中,不同 Mapper 中的 id 可以相同,因为 MyBatis 是根据 Mapper 接口的全限定名和方法名进行唯一标识的,并不要求不同 Mapper 中的 id 必须唯一。
每个 Mapper 接口在配置文件中会有对应的 `<mapper>` 元素,其中包含了该 Mapper 接口对应的 SQL 语句的映射配置。在映射配置中,可以通过给每个 SQL 语句指定一个唯一的 id 来标识。
因此,不同 Mapper 中的 id 可以相同,只要确保在同一个 Mapper 中的所有 id 唯一即可。这是因为 MyBatis 在解析映射配置时,会根据 namespace 和 id 来确定具体要执行的 SQL 语句,不会将不同 Mapper 中相同 id 的 SQL 语句混淆。
但是,为了避免混淆和疏忽,通常建议不同 Mapper 中的 id 最好保持唯一,以提高代码的可读性和维护性。在开发过程中,可以约定团队遵循一定的命名规范,以避免 id 冲突,并更好地组织和管理 SQL 语句。