mybatis传两个及两个以上参数时,有几种方法,分别阐述
时间: 2023-12-10 13:02:34 浏览: 59
Mybatis传递两个及两个以上参数时,常用的方法有以下几种:
1. 使用@Param注解方式: 在Mapper接口方法中,使用@Param注解指定参数的名称,然后在SQL语句中使用#{}占位符引用参数名,如下所示:
```java
@Select("SELECT * FROM user WHERE username = #{username} AND password = #{password}")
User findByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
```
2. 使用Map方式: 将多个参数封装为一个Map对象,然后在SQL语句中使用#{key}占位符引用Map中的参数值,如下所示:
```java
@Select("SELECT * FROM user WHERE username = #{params.username} AND password = #{params.password}")
User findByUsernameAndPassword(Map<String, Object> params);
```
3. 使用POJO对象方式: 将多个参数封装为一个POJO对象,然后在SQL语句中使用#{属性名}占位符引用POJO对象中的属性值,如下所示:
```java
@Select("SELECT * FROM user WHERE username = #{username} AND password = #{password}")
User findByUsernameAndPassword(User user);
```
4. 使用XML映射文件方式: 在XML映射文件中定义SQL语句,使用#{}占位符引用参数名或者使用${}占位符引用参数值,如下所示:
```xml
<select id="findByUsernameAndPassword" parameterType="map" resultType="com.example.User">
SELECT * FROM user WHERE username = #{username} AND password = #{password}
</select>
<select id="findByUsernameAndPassword" parameterType="com.example.User" resultType="com.example.User">
SELECT * FROM user WHERE username = #{username} AND password = ${password}
</select>
```
以上是常用的Mybatis传递两个及两个以上参数的方法,根据实际需求选择合适的方法即可。
阅读全文