乐趣区

关于mybatis:Mybatis中ResultMap和ResultType的区别

根本映射 :(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>
退出移动版