基本映射 :(resultType)使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。(数据库,实体,查询字段,,这些全部都得一一对应)

<select id="findUserCount" parameterType="cn.edu.hpu.mybatis.PO.UserQueryVo" resultType="int">  
        select count(*) from user where user.sex=#{userCustom.sex} and user.username like '%${userCustom.username}%'  
    </select> 

高级映射 :(resultMap) 如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。(高级映射,字段名称可以不一致,通过映射来实现)

<!--
        自定义映射规则:resultMap标签来完成映射规则的定义
        
        id属性:标签给这个映射负责分配一个唯一的id'值,对应就是resultMap=“id属性的值”
    -->
    <resultMap id="UserEntityMap" type="com.xiaoan.store.pojo.User">
        <!-- 将表的资源和类的属性不一致的字段进行匹配指定,名称一致的字段可以省略不写 -->
        <result column="is_delete" property="isDelete"></result>
        <result column="created_User" property="createdUser"></result>
        <result column="created_time" property="createdTime"></result>
        <result column="modified_user" property="modifiedUser"></result>
        <result column="modified_time" property="modifiedTime"></result>
    </resultMap>


<!--
        User findByUsername(String username)
        resultType:表示查询结果集类型,只需要指定对应映射类的类型
        resultMap:标签当表的资源和类的对象属性字段不一致时,来自定义查询结果集的映射规则
    -->
    <select id="findByUsername" resultMap="UserEntityMap">
        select username from t_user where username = #{username}
    </select>

辉辉
1 声望0 粉丝