Mybatis

select标签:

id:相当于方法名

parameterType:传值类型

resultType:返回值类型

值占位符:

select * from user where username like 

1. #{username}    // %王%

2. '%${value}%'        //王

3. "%"#{username}"%"          // 王

resultMap标签:select标签使用resultMap代替resultType

自定义resultMap标签,将id设置与select内的resultMap相同

如以下代码,可将包装类的属性useId与数据库的字段列user_id对应

    <resultMap type="order" id="xxxxx">
        <id property="id" column="id" />
        <!-- property属性名,column是sql里的字段列名 -->
        <result property="userId" column="user_id" />
    </resultMap>
    <select id="getOrders" resultMap="xxxxx">
        SELECT id, user_id, number, createtime, note FROM orders        
    </select>

include、where和 if 标签:

1.include可引入sql标签里的内容:

    <select id="getUser" parameterType="user" resultType="user">
        <!-- include引入sql标签里的内容 -->    
    </select>
    <!-- sql片段 -->
    <sql id="select">
        select count(*) from user
    </sql>

2.where标签可以自动添加where,同时处理sql语句中第一个and关键字

3.使用 if 标签拼串生成sql语句:

    <select id="getUser" parameterType="user" resultType="user">
        <!-- include引入sql标签里的内容 -->
        <include refid="sqlid"></include>
        <where>
            <if test="sex!=null and sex!=''">
                and sex=#{sex} 
            </if> 
            <if test="username!=null and username!=''"> 
                and  username like "%"#{username}"%"
            </if>
        </where>
    </select>
    <!-- sql片段 -->
    <sql id="sqlid">
        select count(*) from user
    </sql>

 

posted on 2019-12-02 09:55  流光若影  阅读(117)  评论(0编辑  收藏  举报