CouponMapper.xml 6.94 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.jeesite.modules.java.dao.CouponDao">
    <!-- Coupon的resultMap,column是给数据库列起的别名,它对应property类的属性-->
    <resultMap id="result_Coupon_Map" type="com.jeesite.modules.java.entity.Coupon">
        <id column="couponId" property="couponId" />
        <result column="couponName" property="couponName" />
        <result column="discounts" property="discounts" />
        <result column="couponType" property="couponType" />
        <result column="scope" property="scope" />
        <result column="expiredDate" property="expiredDate" />
        <result column="validTime" property="validTime" />
        <result column="orderCondition" property="orderCondition" />
    </resultMap>

    <!-- 数据库中表名为:coupon的列名,as前是数据库的列明,as后是列的别名用于映射成实体类中的属性,需要注意的是别名必须与resultMap中的column别名一致 -->
    <sql id="coupon_Column">
        couponId
        ,couponName
        ,discounts
        ,couponType
        ,scope
        ,expiredDate
        ,validTime
        ,orderCondition
    </sql>

    <!--获得类名为:Coupon对应的数据库表的数据总行数 -->
    <select id="getCouponRowCount" resultType="java.lang.Long">
        select count(couponId) from coupon
    </select>
    <!-- 获得类名为:Coupon对应数据库中表的数据集合 -->
    <select id="selectCoupon" resultMap="result_Coupon_Map">
        select 
        <include refid="coupon_Column" /> 
        from coupon
    </select> 

    <!-- 获得一个Coupon对象,以参数Coupon对象中不为空的属性作为条件进行查询-->
    <select id="selectCouponByObj" parameterType="com.jeesite.modules.java.entity.Coupon" resultMap="result_Coupon_Map">
        select 
            <include refid="coupon_Column" /> 
        from coupon
        <where>
            <if test="orderCondition != null "> and coupon.orderCondition = #{orderCondition}</if>
            <if test="validTime != null "> and coupon.validTime = #{validTime}</if>
            <if test="expiredDate != null "> and coupon.expiredDate = #{expiredDate}</if>
            <if test="scope != null "> and coupon.scope = #{scope}</if>
            <if test="couponType != null "> and coupon.couponType = #{couponType}</if>
            <if test="discounts != null "> and coupon.discounts = #{discounts}</if>
            <if test="couponName != null "> and coupon.couponName = #{couponName}</if>
            <if test="couponId != null "> and coupon.couponId = #{couponId}</if>
        </where>
    </select> 

    <!-- 通过Coupon的id获得对应数据库中表的数据对象-->
    <select id="selectCouponById" parameterType="java.lang.Long" resultMap="result_Coupon_Map">
        select 
            <include refid="coupon_Column" /> 
        from coupon
        where coupon.couponId = #{id}
    </select> 

    <!-- 将Coupon插入到对应数据库的表中,包括属性值为null的数据-->

    <insert id="insertCoupon" parameterType="com.jeesite.modules.java.entity.Coupon">
        insert into coupon(couponId,couponName,discounts,couponType,scope,expiredDate,validTime,orderCondition) 
        values(#{couponId},#{couponName},#{discounts},#{couponType},#{scope},#{expiredDate},#{validTime},#{orderCondition})
    </insert>

    <!-- 将Coupon中属性值不为null的数据,插入到对应数据库的表中-->
    <insert id="insertNonEmptyCoupon" parameterType="com.jeesite.modules.java.entity.Coupon">
        insert into coupon
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="couponId != null">couponId,</if>
            <if test="couponName != null">couponName,</if>
            <if test="discounts != null">discounts,</if>
            <if test="couponType != null">couponType,</if>
            <if test="scope != null">scope,</if>
            <if test="expiredDate != null">expiredDate,</if>
            <if test="validTime != null">validTime,</if>
            <if test="orderCondition != null">orderCondition,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="couponId != null"> #{couponId},</if>
            <if test="couponName != null"> #{couponName},</if>
            <if test="discounts != null"> #{discounts},</if>
            <if test="couponType != null"> #{couponType},</if>
            <if test="scope != null"> #{scope},</if>
            <if test="expiredDate != null"> #{expiredDate},</if>
            <if test="validTime != null"> #{validTime},</if>
            <if test="orderCondition != null"> #{orderCondition},</if>
        </trim>
    </insert>

    <!-- 将Coupon批量插入到对应数据库的表中-->
    <insert id="insertCouponByBatch" parameterType="java.util.ArrayList">
        insert into coupon(couponId,couponName,discounts,couponType,scope,expiredDate,validTime,orderCondition) values
        <foreach collection="list" item="item" index="index" separator="," >
            (#{item.couponId},#{item.couponName},#{item.discounts},#{item.couponType},#{item.scope},#{item.expiredDate},#{item.validTime},#{item.orderCondition})
        </foreach>
    </insert>

    <!-- 通过Coupon的id将数据库表中对应的数据删除-->
    <delete id="deleteCouponById" parameterType="java.lang.Long">
        delete from coupon
        where couponId = #{id}
    </delete>

    <!-- 通过Coupon的id将Coupon的数据更新到数据库中对应的表,包括值null的数据-->
    <update id="updateCouponById" parameterType="com.jeesite.modules.java.entity.Coupon">
        update coupon set
            couponName=#{couponName}
            ,discounts=#{discounts}
            ,couponType=#{couponType}
            ,scope=#{scope}
            ,expiredDate=#{expiredDate}
            ,validTime=#{validTime}
            ,orderCondition=#{orderCondition}
        where couponId=#{couponId}
    </update>

    <!-- 通过Coupon的id将Coupon中属性值不为null的数据更新到数据库对应的表中-->
    <update id="updateNonEmptyCouponById" parameterType="com.jeesite.modules.java.entity.Coupon">
        update coupon
        <set>
            <if test="couponName != null">
                couponName=#{couponName},
            </if>
            <if test="discounts != null">
                discounts=#{discounts},
            </if>
            <if test="couponType != null">
                couponType=#{couponType},
            </if>
            <if test="scope != null">
                scope=#{scope},
            </if>
            <if test="expiredDate != null">
                expiredDate=#{expiredDate},
            </if>
            <if test="validTime != null">
                validTime=#{validTime},
            </if>
            <if test="orderCondition != null">
                orderCondition=#{orderCondition},
            </if>
        </set>
        where couponId=#{couponId}
    </update>

</mapper>