ShopBuyerMapper.xml 9.15 KB
<?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.b2c.myapp.dao.ShopBuyerDao">
    <resultMap id="ShopBuyerMap" type="com.b2c.myapp.domain.ShopBuyer">
            <id property="id" column="id"/>
            <result property="buyerId" column="buyer_id"/>
            <result property="sellerId" column="seller_id"/>
            <result property="shopId" column="shop_id"/>
            <result property="promoCode" column="promo_code"/>
            <result property="storedTotalPrice" column="stored_total_price"/>
            <result property="residueTotalPrice" column="residue_total_price"/>
            <result property="freezeTotalPrice" column="freeze_total_price"/>
            <result property="versionNum" column="version_num"/>
            <result property="remark" column="remark"/>
            <result property="yn" column="yn"/>
            <result property="created" column="created"/>
            <result property="modified" column="modified"/>
    </resultMap>


    <!-- templete 所有查询列 -->
    <sql id="QUERY_COLUMN_LIST">
        `id`,`buyer_id`,`seller_id`,`shop_id`,`promo_code`,`stored_total_price`,`residue_total_price`,`freeze_total_price`,`version_num`,`remark`,`yn`,`created`,`modified`
    </sql>

    <!-- templete 查询列来源表-->
    <sql id="QUERY_FROM_TABLE"><![CDATA[FROM t_shop_buyer]]></sql>

    <!-- 全部条件(更多功能可以通过queryData扩展实现)  -->
    <sql id="QUERY_WHERE_CLAUSE">
        <where>
            1 = 1
            <if test="id != null and id != ''">
                and `id` = #{id}
            </if>
            <if test="buyerId != null and buyerId != ''">
                and `buyer_id` = #{buyerId}
            </if>
            <if test="sellerId != null and sellerId != ''">
                and `seller_id` = #{sellerId}
            </if>
            <if test="shopId != null and shopId != ''">
                and `shop_id` = #{shopId}
            </if>
            <if test="promoCode != null and promoCode != ''">
                and `promo_code` = #{promoCode}
            </if>
            <if test="storedTotalPrice != null and storedTotalPrice != ''">
                and `stored_total_price` = #{storedTotalPrice}
            </if>
            <if test="residueTotalPrice != null and residueTotalPrice != ''">
                and `residue_total_price` = #{residueTotalPrice}
            </if>
            <if test="freezeTotalPrice != null and freezeTotalPrice != ''">
                and `freeze_total_price` = #{freezeTotalPrice}
            </if>
            <if test="versionNum != null and versionNum != ''">
                and `version_num` = #{versionNum}
            </if>
            <if test="remark != null and remark != ''">
                and `remark` = #{remark}
            </if>
            <if test="yn != null and yn != ''">
                and `yn` = #{yn}
            </if>
            <if test="created != null and created != ''">
                and `created` = #{created}
            </if>
            <if test="modified != null and modified != ''">
                and `modified` = #{modified}
            </if>
        </where>
    </sql>

    <!-- 智能排序与分页 -->
    <sql id="QUERY_ORDER_LIMIT_CONDTION">
        <if test="orderField != null and orderField != '' and orderFieldType != null and orderFieldType != ''"><![CDATA[ORDER BY `${orderField}` ${orderFieldType}]]></if>
        <if test="startIndex != null and startIndex &gt;= 0 and pageSize != null and pageSize &gt; 0"><![CDATA[LIMIT #{startIndex},#{pageSize}]]></if>
    </sql>

    <!-- 更新列字段,只要不为NULL则更新,除开主键列 -->
    <sql id="UPDATE_COLUMN_SET">
        <set>
            <if test="buyerId != null and buyerId != ''">
                `buyer_id`=#{buyerId},
            </if>
            <if test="sellerId != null and sellerId != ''">
                `seller_id`=#{sellerId},
            </if>
            <if test="shopId != null and shopId != ''">
                `shop_id`=#{shopId},
            </if>
            <if test="promoCode != null and promoCode != ''">
                `promo_code`=#{promoCode},
            </if>
            <if test="storedTotalPrice != null and storedTotalPrice != ''">
                `stored_total_price`=#{storedTotalPrice},
            </if>
            <if test="residueTotalPrice != null and residueTotalPrice != ''">
                `residue_total_price`=#{residueTotalPrice},
            </if>
            <if test="freezeTotalPrice != null and freezeTotalPrice != ''">
                `freeze_total_price`=#{freezeTotalPrice},
            </if>
            <if test="versionNum != null and versionNum != ''">
                `version_num`=#{versionNum},
            </if>
            <if test="remark != null and remark != ''">
                `remark`=#{remark},
            </if>
            <if test="yn != null and yn != ''">
                `yn`=#{yn},
            </if>
            <if test="created != null and created != ''">
                `created`=#{created},
            </if>
            <if test="modified != null and modified != ''">
                `modified`=#{modified}
            </if>
        </set>
    </sql>

    <insert id="insert" parameterType="com.b2c.myapp.domain.ShopBuyer" useGeneratedKeys="true" keyProperty="id">
        <selectKey keyProperty="id" resultType="long" order="AFTER">
            SELECT LAST_INSERT_ID();
        </selectKey>
        <![CDATA[
		INSERT INTO t_shop_buyer(
            `buyer_id`,
            `seller_id`,
            `shop_id`,
            `promo_code`,
            `stored_total_price`,
            `residue_total_price`,
            `freeze_total_price`,
            `version_num`,
            `remark`,
            `yn`,
            `created`,
            `modified`
		) VALUES(
            #{buyerId},
            #{sellerId},
            #{shopId},
            #{promoCode},
            #{storedTotalPrice},
            #{residueTotalPrice},
            #{freezeTotalPrice},
            #{versionNum},
            #{remark},
            #{yn},
            #{created},
            #{modified}
		)
		]]>
    </insert>

    <insert id="batchInsert">
		INSERT INTO t_shop_buyer(
            `buyer_id`,
            `seller_id`,
            `shop_id`,
            `promo_code`,
            `stored_total_price`,
            `residue_total_price`,
            `freeze_total_price`,
            `version_num`,
            `remark`,
            `yn`,
            `created`,
            `modified`
		) VALUES
    <foreach collection="list" item="item" index="index" separator=",">
		(
            #{item.buyerId},
            #{item.sellerId},
            #{item.shopId},
            #{item.promoCode},
            #{item.storedTotalPrice},
            #{item.residueTotalPrice},
            #{item.freezeTotalPrice},
            #{item.versionNum},
            #{item.remark},
            #{item.yn},
            #{item.created},
            #{item.modified}
		)
    </foreach>

    </insert>




    <!-- 返回插入的编号,在事务开启状态下有效 -->
    <select id="lastSequence" resultType="int"><![CDATA[SELECT LAST_INSERT_ID() AS id]]></select>

    <!-- 删除记录,主键IN(array) -->
    <delete id="del" parameterType="java.lang.reflect.Array" >
        DELETE
         <include refid="QUERY_FROM_TABLE"/>
         WHERE id IN
        <foreach collection="array" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>

    <!-- 删除,通过条件 -->
    <update id="deleteByCondtion" parameterType="com.b2c.myapp.domain.ShopBuyer" >
        DELETE
        <include refid="QUERY_FROM_TABLE"/>
        <include refid="QUERY_WHERE_CLAUSE"/>
    </update>

    <!-- 修改记录通过主键 -->
    <update id="update" parameterType="com.b2c.myapp.domain.ShopBuyer" >
        UPDATE t_shop_buyer
        <include refid="UPDATE_COLUMN_SET"/>
        WHERE id = #{id}
    </update>


    <update id="batchUpdate"  parameterType="java.util.List">
        <foreach collection="list" item="item" index="index" open="" close="" separator=";">
            UPDATE t_shop_buyer
            <include refid="UPDATE_COLUMN_SET"/>
            WHERE id = #{item.id}
        </foreach>
    </update>



    <!-- 查询,通过主键IN(array) -->
    <select id="get" parameterType="Long"  resultMap="ShopBuyerMap">
        SELECT
        <include refid="QUERY_COLUMN_LIST"/>
        <include refid="QUERY_FROM_TABLE"/>
        WHERE
        1 = 1
        and id = #{id}
    </select>

    <!-- 查询,通过条件 -->
    <select id="list" parameterType="com.b2c.myapp.domain.ShopBuyer" resultMap="ShopBuyerMap">
        <![CDATA[SELECT]]>
        <include refid="QUERY_COLUMN_LIST"/>
        <include refid="QUERY_FROM_TABLE"/>
        <include refid="QUERY_WHERE_CLAUSE"/>
        <include refid="QUERY_ORDER_LIMIT_CONDTION"/>
    </select>

    <!-- 总数查询,通过条件 -->
    <select id="listCount" parameterType="com.b2c.myapp.domain.ShopBuyer" resultType="int">
        <![CDATA[SELECT COUNT(id) AS dataCount]]>
        <include refid="QUERY_FROM_TABLE"/>
        <include refid="QUERY_WHERE_CLAUSE"/>
    </select>

    <!-- 其它SQL语句 -->


</mapper>