zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    算法-在字符串中删除特定的字符或字符串
    Linux 下的7种文件类型
    TCP/IP协议、三次握手、四次挥手
    8、VUE自定义组件
    7、VUE事件
    6、VUE指令
    Redis高级功能-1、高并发基本概述
    5、插值
    4、VUE生命周期
    3、Vue实例的属性
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6125655.html
Copyright © 2011-2022 走看看