美文网首页
Sql mybatis

Sql mybatis

作者: bigfish1129 | 来源:发表于2018-06-04 17:39 被阅读0次

    SQLmap

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.*.Mapper">
        <resultMap id="BaseResultMap" type="OrderDO">
            <id column="id" jdbcType="BIGINT" property="id"/>
            <result column="gmt_create" property="gmtCreate"/>
            <result column="gmt_modified" property="gmtModified"/>
            <result column="version" property="version"/>
            <result column="user_id" property="userId"/>
            <result column="user_name" property="userName"/>
        </resultMap>
    
        <sql id="columns">
            id, gmt_create, gmt_modified, version, user_id, user_name
        </sql>
    
        <insert id="save" parameterType="OrderDO">
            INSERT INTO order(
            user_id, user_name
            ) VALUES (
            #{userId},
            #{userName}
            )
            <selectKey keyProperty="id" resultType="long" order="AFTER">
                SELECT LAST_INSERT_ID();
            </selectKey>
        </insert>
    
        <update id="update" parameterType="OrderDO">
            UPDATE
            order
            SET
            gmt_modified = now(), version = version + 1
            <if test="status != null">
                , status = #{status}
            </if>
            WHERE
            id = #{Id}
            <if test="userId != null">
                and user_id = #{userId}
            </if>
        </update>
    
        <select id="query" parameterType="com.*.Param"
                resultMap="BaseResultMap">
            SELECT
            a.id,
            a.gmt_create,
            a.gmt_modified,
            a.version,
            a.user_id,
            a.user_name,
            FROM
            order a
            <if test="task != null">
                LEFT JOIN task b ON b.id = a.instance_id and b.status = 5
            </if>
            <where>
                <if test="userId != null">
                    a.user_id = #{userId}
                </if>
            </where>
            order by a.id desc
        </select>
    
        <select id="queryFor" parameterType="OrderDO" resultMap="BaseResultMap">
            SELECT
            <include refid="columns"/>
            FROM
            order
            <where>
                <if test="userId != null">
                    user_id = #{userId}
                </if>
                <if test="statusSet != null">
                    and status in
                    <foreach collection="statusSet" item="e" open="(" separator="," close=")">
                        #{e}
                    </foreach>
                </if>
            </where>
            order by id desc
        </select>
    
        <delete id="deleteOrderId" parameterType="map">
            DELETE FROM order WHERE user_id = #{userId} AND order_id = #{OrderId}
        </delete>
    
        <select id="summary" parameterType="map"
                resultType="com.*.DTO">
            SELECT
              count(1) as "count",
              status
            FROM
              order
            WHERE
              user_id = ${userId}
            <if test="statusSet != null">
                and status in
                <foreach collection="statusSet" item="e" open="(" separator="," close=")">
                    #{e}
                </foreach>
            </if>
            GROUP BY status order by status
        </select>
    </mapper>
    

    2、mapper

    /**
         * 数量统计
         */
        List<DTO> summary(@Param("Id") long Id, @Param("statusSet") Set<Integer> statusSet);
    

    相关文章

      网友评论

          本文标题:Sql mybatis

          本文链接:https://www.haomeiwen.com/subject/hdpysftx.html