在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中處理不同類型的參數集合。