mybatis的xml中如果有多个参数parameterType应该定义为什么类型
时间: 2024-09-26 12:12:35 浏览: 39
Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf
在MyBatis的XML映射文件中,`<select>`、`<insert>`、`<update>`或`<delete>`标签的`parameterType`属性用于指定SQL语句的输入参数类型。如果你需要传递多个参数,你可以定义一个复合数据类型,如Map、List、自定义的Java对象等。
例如,如果你有两个参数A和B,你可以定义参数类型为Map,键值对可以对应SQL语句中的占位符:
```xml
<select id="selectDataByIdAndName" parameterType="map">
SELECT * FROM table_name
WHERE id = #{id} AND name = #{name}
</select>
// 调用时传递参数:
Map<String, Object> params = new HashMap<>();
params.put("id", 1);
params.put("name", "John");
List<User> users = sqlSession.selectList("selectDataByIdAndName", params);
```
另一种情况是你有一个包含多个字段的复合对象作为参数,这时直接将这个对象类型作为`parameterType`即可:
```java
public class UserParams {
private int id;
private String name;
// getters and setters...
}
<select id="getUserByParams" parameterType="com.example.UserParams">
SELECT * FROM user WHERE id = #{id} AND name = #{name}
</select>
// 调用时:
UserParams params = ...;
User user = sqlSession.selectOne("getUserByParams", params);
```
阅读全文