mybatis最重要的mapper文件书写

1.MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap。

也只有在mapper的select标签中,才会指定resultMap属性的值,其他insert/update/delete是不需要指定resultsMap属性的。

mapper文件里还有一个重要属性,parameterType。指定参数的类型

<select id="selectBlog" parameterType="int" resultType="Blog">
  		select * from t_blog where id = #{id}
</select><!--来自SQL映射文件BlogMapper.xml-->

resultMap就是进行object与table记录的转换的啊。

 

3. MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而resultMap就是结果集映射的配置标签了。

resultMap就是结果映射标签

resultMap就是结果映射标签!

resultMap就是结果映射标签!!

所以resultMap要指定两边的具体值啊。即:指定

<select id="selectOne" resultMap="BaseResultMap">
        select * from tbl_user
        <where>
        <trim prefixOverrides="and">
            <if test="openid != null">
                and openid = #{openid}                
            </if>
            <if test="uid != null">
                and uid = #{uid}                
            </if>
            <if test="phone != null">
                and phone = #{phone}                
            </if>
        </trim>
        </where> 
        limit 1
    </select>

 

即只有查询时候才会得到数据,才会用到类型匹配转换,insert/update/delete等这种写操作是不会用到resultmap/resulttype类型转换的。

2.resultmap也可以进行继承的,从其他resultmap里继承过来匹配的关系

 

<resultMap id="BaseResultMap" type="User" extends="SimpleResultMap">
        <id property="uid" column="uid" />

        <result property="unionid" column="unionid"/>
        <result property="openid" column="openid"/>
        <result property="age" column="age"/>
        <result property="birthday" column="birthday"/>
        <result property="sex" column="sex"/>
        <result property="phone" column="phone"/>
        <result property="email" column="email"/>
        <result property="qq" column="qq"/>
        <result property="wechat" column="wechat"/>
        <result property="province" column="province"/>
        <result property="city" column="city"/>
        <result property="country" column="country"/>
        <result property="channel" column="channel"/>
        <result property="password" column="password"/>
        
        <!-- SimpleResultMap 中已经有
        <result property="nickname" column="nickname"/>
        <result property="headimgurl" column="headimgurl"/>
        <result property="appid" column="appid"/>
        <result property="password" column="password"/>
         -->
        <result property="backgroundimg" column="backgroundimg"/>
        <result property="description" column="description"/>
        <result property="createTime" column="create_time"/>
        
    </resultMap>
    
    <resultMap  id="SimpleResultMap" type="User">
        <id property="uid" column="uid" />
        <result property="nickname" column="nickname"/>
        <result property="headimgurl" column="headimgurl"/>
    </resultMap>

 

posted @ 2016-12-02 14:29  跨境电商杂货铺  阅读(2079)  评论(0编辑  收藏  举报