6.mybatis异常:SQL Mapper Configuration,Error parsing Mapper XML,Could not resolve type alias

在xxxMapper中

<select id="getClazz" parameterType="int" resultType="getClazzMap">
        SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id}
    </select>
    
    <resultMap type="Clazz" id="getClazzMap">
        <id property="id" column="cid"/>
        <result property="name" column="cname"/>
        <!-- 关联班级对应的teacher -->
        <association property="teacher" javaType="Teacher">
            <id property="id" column="tid"/>
            <result property="name" column="tname"/>
        </association>
    </resultMap>

查各种资料发现,用到resultType,必须在mybatis的配置文件中进行别名申明该resultType属于哪个实体类

<!-- 配置xxxMapper.xml中的实体类的别名 -->
    <typeAliases>
        <!-- 单个实体类配置别名 -->
        <typeAlias type="com.mlxs.mybatis.test1.User" alias="User"/>
        <typeAlias type="com.mlxs.mybatis.test1.Clazz" alias="getClassMap"/>
        <!-- 整个包配置,别名默认为类名 推荐 -->
        <package name="com.mlxs.mybatis.bean"/>
    </typeAliases>

但是,其实我这上面用错了,我真正要用的是resultMap,不是resultType

<select id="getClazz" parameterType="int" resultMap="getClazzMap">
        SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id}
    </select>
    
    <resultMap type="Clazz" id="getClazzMap">
        <id property="id" column="cid"/>
        <result property="name" column="cname"/>
        <!-- 关联班级对应的teacher -->
        <association property="teacher" javaType="Teacher">
            <id property="id" column="tid"/>
            <result property="name" column="tname"/>
        </association>
    </resultMap>

这个在写的时候要非常注意... ...

posted @ 2016-02-23 00:11  艺言弈行  阅读(35244)  评论(3编辑  收藏  举报