mybatis 实体类 数组
时间: 2025-01-07 12:47:02 浏览: 7
### MyBatis 中处理实体类数组的方法
在 MyBatis 中,可以通过 `foreach` 标签来实现对实体类数组的操作。这使得批量插入、更新或查询变得简单而高效。
#### 使用 `foreach` 遍历实体类数组
当需要传递一个实体类数组给 SQL 映射文件时,可以在 XML 文件中定义如下结构:
```xml
<insert id="batchInsertUsers" parameterType="java.util.List">
INSERT INTO users (id, name, age)
VALUES
<foreach collection="list" item="user" separator=",">
(#{user.id}, #{user.name}, #{user.age})
</foreach>
</insert>
```
这段代码展示了如何将多个用户的记录一次性插入到数据库表中[^1]。
对于 Java 接口部分,则应声明对应的方法签名:
```java
public interface UserMapper {
void batchInsertUsers(List<User> userList);
}
```
这里假设有一个名为 `User` 的实体类,该类包含了字段 `id`, `name`, 和 `age`.
#### 处理返回结果集中的多条记录
如果要接收来自数据库的结果作为对象列表返回,在 SELECT 查询语句里同样可以利用 `foreach` 来构建动态条件,并且指定合适的 `resultMap` 或者直接映射成 List 类型的对象集合:
```xml
<select id="findUsersByIds" resultType="com.example.User" parameterType="java.util.List">
SELECT * FROM users WHERE id IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
此片段说明了怎样根据一组 ID 查找对应的用户信息并将其封装为 `List<User>` 返回给调用方[^3].
阅读全文