Mybatis中parameterMap参数详解
时间: 2023-05-31 09:03:54 浏览: 1003
Mybatis中的parameterMap是一种传递参数的方式,可以将多个参数封装成一个Map对象,并将Map对象作为参数传递给SQL语句的参数列表中。
parameterMap的定义方式如下:
```
<parameterMap id="parameterMap" class="java.util.Map">
<parameter property="param1" javaType="String" jdbcType="VARCHAR"/>
<parameter property="param2" javaType="int" jdbcType="INTEGER"/>
</parameterMap>
```
其中,id为parameterMap的唯一标识符,class为参数Map的类型,parameter用于定义参数的属性名、Java类型和JDBC类型。
在SQL语句中,可以使用Map的key作为参数名,例如:
```
<select id="queryUser" parameterMap="parameterMap" resultType="User">
SELECT * FROM user WHERE name = #{param1} AND age = #{param2}
</select>
```
在调用mapper接口的方法时,可以将参数封装成Map对象并传递给方法,例如:
```
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("param1", "张三");
paramMap.put("param2", 20);
List<User> userList = userMapper.queryUser(paramMap);
```
使用parameterMap的好处是可以将多个参数封装成一个Map对象,减少了参数的数量,使代码更简洁。但是,parameterMap的缺点是不够灵活,需要手动封装参数到Map中,不方便使用。因此,在实际开发中,一般采用更为灵活的parameterType参数类型来传递参数。