परिणाम नक्शा इस तरह दिखता है:
<resultMap id="UserResult" type="User">
<id property="userId" column="userId"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
</resultMap>
अपने चयन कथन में, पैरामीटर प्रकार को 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>
आपका मैपर इंटरफ़ेस इस तरह दिखता है, ऐसा लगता है कि आप वर्तमान में इसे डीएओ कह रहे हैं। जिस तरह से मैंने इसे अतीत में किया है वह एक मैपर इंटरफ़ेस बनाना है जो डीएओ में इंजेक्शन हो जाता है और डीएओ मैपर पर विधियों को कॉल करता है। यहाँ एक उदाहरण मैपर इंटरफ़ेस है:
public interface UserMapper {
public Object getUsers(Map<String, Object> params);
}
उस मैपर वर्ग को तब डीएओ कक्षा में इंजेक्ट किया जाएगा और इस तरह कॉल किया जाएगा:
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"));
}