Bản đồ kết quả trông như thế này:
<resultMap id="UserResult" type="User">
<id property="userId" column="userId"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
</resultMap>
Trong câu lệnh select của bạn, hãy thay đổi loại tham số thành java.util.Map.
<select id="getUsers" statementType="CALLABLE" parameterType="java.util.Map">
{call GetUsers(#{users, jdbcType=CURSOR, javaType=java.sql.ResultSet, mode=OUT, resultMap=UserResult})}
</select>
Giao diện lập bản đồ của bạn trông như thế này, có vẻ như bạn hiện đang gọi đây là DAO. Cách mà tôi đã làm trước đây là tạo một giao diện ánh xạ được đưa vào DAO và DAO là thứ gọi các phương thức trên trình ánh xạ. Đây là một giao diện trình liên kết mẫu:
public interface UserMapper {
public Object getUsers(Map<String, Object> params);
}
Sau đó, lớp ánh xạ đó sẽ được đưa vào một lớp DAO và thực hiện cuộc gọi như sau:
public List<User> getUsers() {
Map<String, Object> params = new HashMap<String, Object>();
ResultSet rs = null;
params.put("users", rs);
userMapper.getUsers(params);
return ((ArrayList<User>)params.get("users"));
}