mybatis mapper 方法名一样 参数不一样 两个方法 xml怎么写
时间: 2024-01-25 07:04:53 浏览: 198
在 MyBatis 中,如果两个 Mapper 方法的方法名相同但参数不同,可以在 XML 文件中使用 `method` 属性来区分它们,示例如下:
```xml
<!-- 第一个 Mapper 方法 -->
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 第二个 Mapper 方法 -->
<select id="getUserByUsername" parameterType="String" resultType="User" method="getUserByUsername">
SELECT * FROM user WHERE username = #{username}
</select>
```
在第二个 Mapper 方法中,使用了 `method` 属性来指定方法名为 `getUserByUsername`,这样 MyBatis 就能正确地识别这个方法了。在 Java 代码中,分别调用这两个方法的方式如下:
```java
User user1 = sqlSession.selectOne("getUserById", 1);
User user2 = sqlSession.selectOne("getUserByUsername", "admin");
```
需要注意的是,如果 Mapper 方法的方法名和 XML 中的 id 属性名相同,那么就不需要使用 `method` 属性了,MyBatis 可以自动识别这个方法。
阅读全文