ibatis怎么进行多表连接查询

ibatis如何进行多表连接查询
本人这几天在研究ibatis,关于ibatis的多表连接查询,查询出的数据是多张表的结果,这种查询应该怎么用ibatis实现,比如我想查询一个学生的成绩,涉及到了三张表,table student(sid number(5),sname varchar2(10)),课程表table course(cid number(5),cname varchar2(10)),成绩表table score(sid number(5),cid number(5),score number(5)),想展示出学生的对应课程成就,SQL应该是:
select s.sname,c.cname,t.score from student s,course c,score t where s.sid=t.sid and c.cid=
t.cid and s.sid=数字,但是用ibatis应该怎么实现,主要是配置文件这些应该怎么写?我知道的传参数可以用map的形式将各种参数组合起来,但是如果返回结果涉及到多个类的,是不是也应该用map的形式返回?能具体给个有注释的demo吗?谢谢了
ibatis SQL 连接查询

------解决方案--------------------
<select id="homePageList" parameterClass="java.util.Map" resultClass="java.util.HashMap">
SELECT 
  v.`attribute_id` AS attributeId,
  o.attribute_option_id AS attributeOptionId,
  TRIM(ol.`attribute_option_name`) AS attributeOptionName,
  v.`value_name` AS valueName,
  r.`value_key` AS valueKey, 
  l.`value_content` AS valueContent
FROM
  cosplay_display d 
  JOIN t_attribute_option o 
    ON d.option_id = o.attribute_option_id 
    AND o.data_status = 0 
  JOIN t_attribute_option_lang ol 
    ON o.attribute_option_id = ol.attribute_option_id 
    AND ol.data_status = 0 
    AND ol.`language_id` = #languageId#
  JOIN product_attribute_function_value v 
    ON o.`product_attribute_id` = v.`attribute_id` 
    AND o.attribute_option_id = v.option_id 
    AND v.data_status = 0 
    AND v.value_name IS NOT NULL 
  JOIN product_attribute_function_value_lang l 
    ON l.value_id = v.id 
    AND l.data_status = 0 
    AND l.value_content IS NOT NULL 
    AND l.`language_id` = 1
  JOIN product_attribute_function_rule r 
    ON r.`id` = v.`rule_id` 
    AND r.`data_status` = 0 
    <isNotEmpty prepend="and" property="key">
     r.`value_key` = #key#
    </isNotEmpty>
WHERE d.data_status = 0 
  AND d.display_type = #displayType#
ORDER BY d.`sort`
LIMIT #returnNum#
</select>