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