mybatis

mybatis param集合参数如何处理

小樊
89
2024-08-03 05:53:10
栏目: 编程语言

在MyBatis中,可以通过使用param标签来定义一个参数集合,并在SQL语句中引用这个参数集合。参数集合可以是一个Map、一个JavaBean对象或一个List。以下是如何处理不同类型的参数集合:

  1. 使用Map作为参数集合: 可以在Mapper文件中使用param标签来定义一个Map作为参数集合,然后在SQL语句中引用这个Map中的键值对。例如:
<select id="getUserById" resultType="User">
    SELECT * FROM user WHERE id = #{userId}
</select>

在Java代码中使用Map作为参数集合:

Map<String, Object> params = new HashMap<>();
params.put("userId", 1);
User user = sqlSession.selectOne("getUserById", params);
  1. 使用JavaBean对象作为参数集合: 可以在Mapper文件中使用param标签来定义一个JavaBean对象作为参数集合,然后在SQL语句中引用这个JavaBean对象的属性。例如:
<select id="getUserByName" resultType="User">
    SELECT * FROM user WHERE name = #{user.name}
</select>

在Java代码中使用JavaBean对象作为参数集合:

User user = new User();
user.setName("Alice");
User user = sqlSession.selectOne("getUserByName", user);
  1. 使用List作为参数集合: 可以在Mapper文件中使用param标签来定义一个List作为参数集合,然后在SQL语句中使用foreach标签来遍历这个List。例如:
<select id="getUsersByIds" resultType="User">
    SELECT * FROM user WHERE id IN
    <foreach collection="userIds" item="userId" open="(" separator="," close=")">
        #{userId}
    </foreach>
</select>

在Java代码中使用List作为参数集合:

List<Integer> userIds = Arrays.asList(1, 2, 3);
List<User> users = sqlSession.selectList("getUsersByIds", userIds);

通过以上方法,可以很方便地在MyBatis中处理不同类型的参数集合。

0
看了该问题的人还看了