Peta hasil terlihat seperti ini:
<resultMap id="UserResult" type="User">
<id property="userId" column="userId"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
</resultMap>
Dalam pernyataan pilih Anda, ubah tipe parameter menjadi 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>
Antarmuka mapper Anda terlihat seperti ini, sepertinya Anda saat ini menyebutnya DAO. Cara saya melakukannya di masa lalu adalah membuat antarmuka mapper yang disuntikkan ke DAO dan DAO adalah yang memanggil metode pada mapper. Berikut ini contoh antarmuka mapper:
public interface UserMapper {
public Object getUsers(Map<String, Object> params);
}
Kelas mapper itu kemudian akan disuntikkan ke dalam kelas DAO dan melakukan panggilan seperti ini:
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"));
}