mybaties delete有多个参数 parameterType要填吗?填什么
时间: 2024-09-18 10:16:53 浏览: 28
在 MyBatis 的 `delete` 或其他涉及参数的操作(如 `update` 和 `select`)中,当你有多个参数需要传递时,`parameterType` 属性通常针对每个参数都需要填写。`parameterType` 是用于指定参数的 Java 类型,它告诉 MyBatis 数据库连接如何处理该参数。
例如,假设你有一个 `User` 对象作为删除操作的唯一参数,你可以这样做:
```xml
<delete id="deleteUser" parameterType="com.example.User">
DELETE FROM users WHERE id = #{id}
</delete>
```
在这个例子中,`parameterType` 是 "com.example.User",表示你需要提供一个 User 对象,并且 `#{id}` 是这个对象的一个属性(在这个例子中通常是 `id` 属性)。
如果有多个参数,你可以在参数之间加上逗号分隔,每个参数对应一个 `parameterType`。例如:
```xml
<delete id="deleteUsersByIdAndName" parameterType="java.util.Map">
DELETE FROM users WHERE id = #{id} AND name = #{name}
</delete>
```
这里 `parameterType` 是 `Map`,因为 Map 可以关联多个键值对,分别代表 id 和 name。
注意,如果参数是数组或列表,你可能需要使用 `collection` 标签而非单个 `parameterType`。例如:
```xml
<delete id="deleteUsersByIds" parameterType="java.util.List">
DELETE FROM users WHERE id IN
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
```
在这种情况下,`parameterType` 变成了 `List<Integer>` 或相应的类型,`collection` 是内部循环使用的变量。
阅读全文