# RocketMQ 实战:模拟电商网站场景综合案例(五)

RocketMQ 实战:模拟电商网站场景综合案例(五)

一、mybatis 逆向工程使用

4、逆向工程 生成 的 .xml 配置文件。

4.1、生成的 TradeCouponMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeCouponMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeCoupon" >
    <id column="coupon_id" property="couponId" jdbcType="BIGINT" />
    <result column="coupon_price" property="couponPrice" jdbcType="DECIMAL" />
    <result column="user_id" property="userId" jdbcType="BIGINT" />
    <result column="order_id" property="orderId" jdbcType="BIGINT" />
    <result column="is_used" property="isUsed" jdbcType="INTEGER" />
    <result column="used_time" property="usedTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    coupon_id, coupon_price, user_id, order_id, is_used, used_time
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeCouponExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_coupon
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from trade_coupon
    where coupon_id = #{couponId,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from trade_coupon
    where coupon_id = #{couponId,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeCouponExample" >
    delete from trade_coupon
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeCoupon" >
    insert into trade_coupon (coupon_id, coupon_price, user_id, 
      order_id, is_used, used_time
      )
    values (#{couponId,jdbcType=BIGINT}, #{couponPrice,jdbcType=DECIMAL}, #{userId,jdbcType=BIGINT}, 
      #{orderId,jdbcType=BIGINT}, #{isUsed,jdbcType=INTEGER}, #{usedTime,jdbcType=TIMESTAMP}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeCoupon" >
    insert into trade_coupon
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="couponId != null" >
        coupon_id,
      </if>
      <if test="couponPrice != null" >
        coupon_price,
      </if>
      <if test="userId != null" >
        user_id,
      </if>
      <if test="orderId != null" >
        order_id,
      </if>
      <if test="isUsed != null" >
        is_used,
      </if>
      <if test="usedTime != null" >
        used_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="couponId != null" >
        #{couponId,jdbcType=BIGINT},
      </if>
      <if test="couponPrice != null" >
        #{couponPrice,jdbcType=DECIMAL},
      </if>
      <if test="userId != null" >
        #{userId,jdbcType=BIGINT},
      </if>
      <if test="orderId != null" >
        #{orderId,jdbcType=BIGINT},
      </if>
      <if test="isUsed != null" >
        #{isUsed,jdbcType=INTEGER},
      </if>
      <if test="usedTime != null" >
        #{usedTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeCouponExample" resultType="java.lang.Integer" >
    select count(*) from trade_coupon
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_coupon
    <set >
      <if test="record.couponId != null" >
        coupon_id = #{record.couponId,jdbcType=BIGINT},
      </if>
      <if test="record.couponPrice != null" >
        coupon_price = #{record.couponPrice,jdbcType=DECIMAL},
      </if>
      <if test="record.userId != null" >
        user_id = #{record.userId,jdbcType=BIGINT},
      </if>
      <if test="record.orderId != null" >
        order_id = #{record.orderId,jdbcType=BIGINT},
      </if>
      <if test="record.isUsed != null" >
        is_used = #{record.isUsed,jdbcType=INTEGER},
      </if>
      <if test="record.usedTime != null" >
        used_time = #{record.usedTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_coupon
    set coupon_id = #{record.couponId,jdbcType=BIGINT},
      coupon_price = #{record.couponPrice,jdbcType=DECIMAL},
      user_id = #{record.userId,jdbcType=BIGINT},
      order_id = #{record.orderId,jdbcType=BIGINT},
      is_used = #{record.isUsed,jdbcType=INTEGER},
      used_time = #{record.usedTime,jdbcType=TIMESTAMP}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeCoupon" >
    update trade_coupon
    <set >
      <if test="couponPrice != null" >
        coupon_price = #{couponPrice,jdbcType=DECIMAL},
      </if>
      <if test="userId != null" >
        user_id = #{userId,jdbcType=BIGINT},
      </if>
      <if test="orderId != null" >
        order_id = #{orderId,jdbcType=BIGINT},
      </if>
      <if test="isUsed != null" >
        is_used = #{isUsed,jdbcType=INTEGER},
      </if>
      <if test="usedTime != null" >
        used_time = #{usedTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where coupon_id = #{couponId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeCoupon" >
    update trade_coupon
    set coupon_price = #{couponPrice,jdbcType=DECIMAL},
      user_id = #{userId,jdbcType=BIGINT},
      order_id = #{orderId,jdbcType=BIGINT},
      is_used = #{isUsed,jdbcType=INTEGER},
      used_time = #{usedTime,jdbcType=TIMESTAMP}
    where coupon_id = #{couponId,jdbcType=BIGINT}
  </update>
</mapper>
4.2、生成的 TradeGoodsMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeGoodsMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeGoods" >
    <id column="goods_id" property="goodsId" jdbcType="BIGINT" />
    <result column="goods_name" property="goodsName" jdbcType="VARCHAR" />
    <result column="goods_number" property="goodsNumber" jdbcType="INTEGER" />
    <result column="goods_price" property="goodsPrice" jdbcType="DECIMAL" />
    <result column="goods_desc" property="goodsDesc" jdbcType="VARCHAR" />
    <result column="add_time" property="addTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    goods_id, goods_name, goods_number, goods_price, goods_desc, add_time
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeGoodsExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_goods
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from trade_goods
    where goods_id = #{goodsId,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from trade_goods
    where goods_id = #{goodsId,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeGoodsExample" >
    delete from trade_goods
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeGoods" >
    insert into trade_goods (goods_id, goods_name, goods_number, 
      goods_price, goods_desc, add_time
      )
    values (#{goodsId,jdbcType=BIGINT}, #{goodsName,jdbcType=VARCHAR}, #{goodsNumber,jdbcType=INTEGER}, 
      #{goodsPrice,jdbcType=DECIMAL}, #{goodsDesc,jdbcType=VARCHAR}, #{addTime,jdbcType=TIMESTAMP}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeGoods" >
    insert into trade_goods
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="goodsId != null" >
        goods_id,
      </if>
      <if test="goodsName != null" >
        goods_name,
      </if>
      <if test="goodsNumber != null" >
        goods_number,
      </if>
      <if test="goodsPrice != null" >
        goods_price,
      </if>
      <if test="goodsDesc != null" >
        goods_desc,
      </if>
      <if test="addTime != null" >
        add_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="goodsId != null" >
        #{goodsId,jdbcType=BIGINT},
      </if>
      <if test="goodsName != null" >
        #{goodsName,jdbcType=VARCHAR},
      </if>
      <if test="goodsNumber != null" >
        #{goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="goodsPrice != null" >
        #{goodsPrice,jdbcType=DECIMAL},
      </if>
      <if test="goodsDesc != null" >
        #{goodsDesc,jdbcType=VARCHAR},
      </if>
      <if test="addTime != null" >
        #{addTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeGoodsExample" resultType="java.lang.Integer" >
    select count(*) from trade_goods
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_goods
    <set >
      <if test="record.goodsId != null" >
        goods_id = #{record.goodsId,jdbcType=BIGINT},
      </if>
      <if test="record.goodsName != null" >
        goods_name = #{record.goodsName,jdbcType=VARCHAR},
      </if>
      <if test="record.goodsNumber != null" >
        goods_number = #{record.goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="record.goodsPrice != null" >
        goods_price = #{record.goodsPrice,jdbcType=DECIMAL},
      </if>
      <if test="record.goodsDesc != null" >
        goods_desc = #{record.goodsDesc,jdbcType=VARCHAR},
      </if>
      <if test="record.addTime != null" >
        add_time = #{record.addTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_goods
    set goods_id = #{record.goodsId,jdbcType=BIGINT},
      goods_name = #{record.goodsName,jdbcType=VARCHAR},
      goods_number = #{record.goodsNumber,jdbcType=INTEGER},
      goods_price = #{record.goodsPrice,jdbcType=DECIMAL},
      goods_desc = #{record.goodsDesc,jdbcType=VARCHAR},
      add_time = #{record.addTime,jdbcType=TIMESTAMP}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeGoods" >
    update trade_goods
    <set >
      <if test="goodsName != null" >
        goods_name = #{goodsName,jdbcType=VARCHAR},
      </if>
      <if test="goodsNumber != null" >
        goods_number = #{goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="goodsPrice != null" >
        goods_price = #{goodsPrice,jdbcType=DECIMAL},
      </if>
      <if test="goodsDesc != null" >
        goods_desc = #{goodsDesc,jdbcType=VARCHAR},
      </if>
      <if test="addTime != null" >
        add_time = #{addTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where goods_id = #{goodsId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeGoods" >
    update trade_goods
    set goods_name = #{goodsName,jdbcType=VARCHAR},
      goods_number = #{goodsNumber,jdbcType=INTEGER},
      goods_price = #{goodsPrice,jdbcType=DECIMAL},
      goods_desc = #{goodsDesc,jdbcType=VARCHAR},
      add_time = #{addTime,jdbcType=TIMESTAMP}
    where goods_id = #{goodsId,jdbcType=BIGINT}
  </update>
</mapper>
4.3、生成的 TradeGoodsNumberLogMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeGoodsNumberLogMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeGoodsNumberLog" >
    <id column="goods_id" property="goodsId" jdbcType="BIGINT" />
    <id column="order_id" property="orderId" jdbcType="BIGINT" />
    <result column="goods_number" property="goodsNumber" jdbcType="INTEGER" />
    <result column="log_time" property="logTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    goods_id, order_id, goods_number, log_time
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLogExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_goods_number_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLogKey" >
    select 
    <include refid="Base_Column_List" />
    from trade_goods_number_log
    where goods_id = #{goodsId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLogKey" >
    delete from trade_goods_number_log
    where goods_id = #{goodsId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLogExample" >
    delete from trade_goods_number_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLog" >
    insert into trade_goods_number_log (goods_id, order_id, goods_number, 
      log_time)
    values (#{goodsId,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT}, #{goodsNumber,jdbcType=INTEGER}, 
      #{logTime,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLog" >
    insert into trade_goods_number_log
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="goodsId != null" >
        goods_id,
      </if>
      <if test="orderId != null" >
        order_id,
      </if>
      <if test="goodsNumber != null" >
        goods_number,
      </if>
      <if test="logTime != null" >
        log_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="goodsId != null" >
        #{goodsId,jdbcType=BIGINT},
      </if>
      <if test="orderId != null" >
        #{orderId,jdbcType=BIGINT},
      </if>
      <if test="goodsNumber != null" >
        #{goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="logTime != null" >
        #{logTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLogExample" resultType="java.lang.Integer" >
    select count(*) from trade_goods_number_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_goods_number_log
    <set >
      <if test="record.goodsId != null" >
        goods_id = #{record.goodsId,jdbcType=BIGINT},
      </if>
      <if test="record.orderId != null" >
        order_id = #{record.orderId,jdbcType=BIGINT},
      </if>
      <if test="record.goodsNumber != null" >
        goods_number = #{record.goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="record.logTime != null" >
        log_time = #{record.logTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_goods_number_log
    set goods_id = #{record.goodsId,jdbcType=BIGINT},
      order_id = #{record.orderId,jdbcType=BIGINT},
      goods_number = #{record.goodsNumber,jdbcType=INTEGER},
      log_time = #{record.logTime,jdbcType=TIMESTAMP}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLog" >
    update trade_goods_number_log
    <set >
      <if test="goodsNumber != null" >
        goods_number = #{goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="logTime != null" >
        log_time = #{logTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where goods_id = #{goodsId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeGoodsNumberLog" >
    update trade_goods_number_log
    set goods_number = #{goodsNumber,jdbcType=INTEGER},
      log_time = #{logTime,jdbcType=TIMESTAMP}
    where goods_id = #{goodsId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
  </update>
</mapper>
4.4、生成的 TradeMqConsumerLogMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeMqConsumerLogMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeMqConsumerLog" >
    <id column="group_name" property="groupName" jdbcType="VARCHAR" />
    <id column="msg_tag" property="msgTag" jdbcType="VARCHAR" />
    <id column="msg_key" property="msgKey" jdbcType="VARCHAR" />
    <result column="msg_id" property="msgId" jdbcType="VARCHAR" />
    <result column="msg_body" property="msgBody" jdbcType="VARCHAR" />
    <result column="consumer_status" property="consumerStatus" jdbcType="INTEGER" />
    <result column="consumer_times" property="consumerTimes" jdbcType="INTEGER" />
    <result column="consumer_timestamp" property="consumerTimestamp" jdbcType="TIMESTAMP" />
    <result column="remark" property="remark" jdbcType="VARCHAR" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    group_name, msg_tag, msg_key, msg_id, msg_body, consumer_status, consumer_times, 
    consumer_timestamp, remark
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeMqConsumerLogExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_mq_consumer_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeMqConsumerLogKey" >
    select 
    <include refid="Base_Column_List" />
    from trade_mq_consumer_log
    where group_name = #{groupName,jdbcType=VARCHAR}
      and msg_tag = #{msgTag,jdbcType=VARCHAR}
      and msg_key = #{msgKey,jdbcType=VARCHAR}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeMqConsumerLogKey" >
    delete from trade_mq_consumer_log
    where group_name = #{groupName,jdbcType=VARCHAR}
      and msg_tag = #{msgTag,jdbcType=VARCHAR}
      and msg_key = #{msgKey,jdbcType=VARCHAR}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeMqConsumerLogExample" >
    delete from trade_mq_consumer_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeMqConsumerLog" >
    insert into trade_mq_consumer_log (group_name, msg_tag, msg_key, 
      msg_id, msg_body, consumer_status, 
      consumer_times, consumer_timestamp, remark
      )
    values (#{groupName,jdbcType=VARCHAR}, #{msgTag,jdbcType=VARCHAR}, #{msgKey,jdbcType=VARCHAR}, 
      #{msgId,jdbcType=VARCHAR}, #{msgBody,jdbcType=VARCHAR}, #{consumerStatus,jdbcType=INTEGER}, 
      #{consumerTimes,jdbcType=INTEGER}, #{consumerTimestamp,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeMqConsumerLog" >
    insert into trade_mq_consumer_log
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="groupName != null" >
        group_name,
      </if>
      <if test="msgTag != null" >
        msg_tag,
      </if>
      <if test="msgKey != null" >
        msg_key,
      </if>
      <if test="msgId != null" >
        msg_id,
      </if>
      <if test="msgBody != null" >
        msg_body,
      </if>
      <if test="consumerStatus != null" >
        consumer_status,
      </if>
      <if test="consumerTimes != null" >
        consumer_times,
      </if>
      <if test="consumerTimestamp != null" >
        consumer_timestamp,
      </if>
      <if test="remark != null" >
        remark,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="groupName != null" >
        #{groupName,jdbcType=VARCHAR},
      </if>
      <if test="msgTag != null" >
        #{msgTag,jdbcType=VARCHAR},
      </if>
      <if test="msgKey != null" >
        #{msgKey,jdbcType=VARCHAR},
      </if>
      <if test="msgId != null" >
        #{msgId,jdbcType=VARCHAR},
      </if>
      <if test="msgBody != null" >
        #{msgBody,jdbcType=VARCHAR},
      </if>
      <if test="consumerStatus != null" >
        #{consumerStatus,jdbcType=INTEGER},
      </if>
      <if test="consumerTimes != null" >
        #{consumerTimes,jdbcType=INTEGER},
      </if>
      <if test="consumerTimestamp != null" >
        #{consumerTimestamp,jdbcType=TIMESTAMP},
      </if>
      <if test="remark != null" >
        #{remark,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeMqConsumerLogExample" resultType="java.lang.Integer" >
    select count(*) from trade_mq_consumer_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_mq_consumer_log
    <set >
      <if test="record.groupName != null" >
        group_name = #{record.groupName,jdbcType=VARCHAR},
      </if>
      <if test="record.msgTag != null" >
        msg_tag = #{record.msgTag,jdbcType=VARCHAR},
      </if>
      <if test="record.msgKey != null" >
        msg_key = #{record.msgKey,jdbcType=VARCHAR},
      </if>
      <if test="record.msgId != null" >
        msg_id = #{record.msgId,jdbcType=VARCHAR},
      </if>
      <if test="record.msgBody != null" >
        msg_body = #{record.msgBody,jdbcType=VARCHAR},
      </if>
      <if test="record.consumerStatus != null" >
        consumer_status = #{record.consumerStatus,jdbcType=INTEGER},
      </if>
      <if test="record.consumerTimes != null" >
        consumer_times = #{record.consumerTimes,jdbcType=INTEGER},
      </if>
      <if test="record.consumerTimestamp != null" >
        consumer_timestamp = #{record.consumerTimestamp,jdbcType=TIMESTAMP},
      </if>
      <if test="record.remark != null" >
        remark = #{record.remark,jdbcType=VARCHAR},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_mq_consumer_log
    set group_name = #{record.groupName,jdbcType=VARCHAR},
      msg_tag = #{record.msgTag,jdbcType=VARCHAR},
      msg_key = #{record.msgKey,jdbcType=VARCHAR},
      msg_id = #{record.msgId,jdbcType=VARCHAR},
      msg_body = #{record.msgBody,jdbcType=VARCHAR},
      consumer_status = #{record.consumerStatus,jdbcType=INTEGER},
      consumer_times = #{record.consumerTimes,jdbcType=INTEGER},
      consumer_timestamp = #{record.consumerTimestamp,jdbcType=TIMESTAMP},
      remark = #{record.remark,jdbcType=VARCHAR}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeMqConsumerLog" >
    update trade_mq_consumer_log
    <set >
      <if test="msgId != null" >
        msg_id = #{msgId,jdbcType=VARCHAR},
      </if>
      <if test="msgBody != null" >
        msg_body = #{msgBody,jdbcType=VARCHAR},
      </if>
      <if test="consumerStatus != null" >
        consumer_status = #{consumerStatus,jdbcType=INTEGER},
      </if>
      <if test="consumerTimes != null" >
        consumer_times = #{consumerTimes,jdbcType=INTEGER},
      </if>
      <if test="consumerTimestamp != null" >
        consumer_timestamp = #{consumerTimestamp,jdbcType=TIMESTAMP},
      </if>
      <if test="remark != null" >
        remark = #{remark,jdbcType=VARCHAR},
      </if>
    </set>
    where group_name = #{groupName,jdbcType=VARCHAR}
      and msg_tag = #{msgTag,jdbcType=VARCHAR}
      and msg_key = #{msgKey,jdbcType=VARCHAR}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeMqConsumerLog" >
    update trade_mq_consumer_log
    set msg_id = #{msgId,jdbcType=VARCHAR},
      msg_body = #{msgBody,jdbcType=VARCHAR},
      consumer_status = #{consumerStatus,jdbcType=INTEGER},
      consumer_times = #{consumerTimes,jdbcType=INTEGER},
      consumer_timestamp = #{consumerTimestamp,jdbcType=TIMESTAMP},
      remark = #{remark,jdbcType=VARCHAR}
    where group_name = #{groupName,jdbcType=VARCHAR}
      and msg_tag = #{msgTag,jdbcType=VARCHAR}
      and msg_key = #{msgKey,jdbcType=VARCHAR}
  </update>
</mapper>
4.5、生成的 TradeMqProducerTempMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeMqProducerTempMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeMqProducerTemp" >
    <id column="id" property="id" jdbcType="VARCHAR" />
    <result column="group_name" property="groupName" jdbcType="VARCHAR" />
    <result column="msg_topic" property="msgTopic" jdbcType="VARCHAR" />
    <result column="msg_tag" property="msgTag" jdbcType="VARCHAR" />
    <result column="msg_key" property="msgKey" jdbcType="VARCHAR" />
    <result column="msg_body" property="msgBody" jdbcType="VARCHAR" />
    <result column="msg_status" property="msgStatus" jdbcType="INTEGER" />
    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    id, group_name, msg_topic, msg_tag, msg_key, msg_body, msg_status, create_time
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeMqProducerTempExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_mq_producer_temp
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
    select 
    <include refid="Base_Column_List" />
    from trade_mq_producer_temp
    where id = #{id,jdbcType=VARCHAR}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
    delete from trade_mq_producer_temp
    where id = #{id,jdbcType=VARCHAR}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeMqProducerTempExample" >
    delete from trade_mq_producer_temp
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeMqProducerTemp" >
    insert into trade_mq_producer_temp (id, group_name, msg_topic, 
      msg_tag, msg_key, msg_body, 
      msg_status, create_time)
    values (#{id,jdbcType=VARCHAR}, #{groupName,jdbcType=VARCHAR}, #{msgTopic,jdbcType=VARCHAR}, 
      #{msgTag,jdbcType=VARCHAR}, #{msgKey,jdbcType=VARCHAR}, #{msgBody,jdbcType=VARCHAR}, 
      #{msgStatus,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeMqProducerTemp" >
    insert into trade_mq_producer_temp
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="groupName != null" >
        group_name,
      </if>
      <if test="msgTopic != null" >
        msg_topic,
      </if>
      <if test="msgTag != null" >
        msg_tag,
      </if>
      <if test="msgKey != null" >
        msg_key,
      </if>
      <if test="msgBody != null" >
        msg_body,
      </if>
      <if test="msgStatus != null" >
        msg_status,
      </if>
      <if test="createTime != null" >
        create_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=VARCHAR},
      </if>
      <if test="groupName != null" >
        #{groupName,jdbcType=VARCHAR},
      </if>
      <if test="msgTopic != null" >
        #{msgTopic,jdbcType=VARCHAR},
      </if>
      <if test="msgTag != null" >
        #{msgTag,jdbcType=VARCHAR},
      </if>
      <if test="msgKey != null" >
        #{msgKey,jdbcType=VARCHAR},
      </if>
      <if test="msgBody != null" >
        #{msgBody,jdbcType=VARCHAR},
      </if>
      <if test="msgStatus != null" >
        #{msgStatus,jdbcType=INTEGER},
      </if>
      <if test="createTime != null" >
        #{createTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeMqProducerTempExample" resultType="java.lang.Integer" >
    select count(*) from trade_mq_producer_temp
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_mq_producer_temp
    <set >
      <if test="record.id != null" >
        id = #{record.id,jdbcType=VARCHAR},
      </if>
      <if test="record.groupName != null" >
        group_name = #{record.groupName,jdbcType=VARCHAR},
      </if>
      <if test="record.msgTopic != null" >
        msg_topic = #{record.msgTopic,jdbcType=VARCHAR},
      </if>
      <if test="record.msgTag != null" >
        msg_tag = #{record.msgTag,jdbcType=VARCHAR},
      </if>
      <if test="record.msgKey != null" >
        msg_key = #{record.msgKey,jdbcType=VARCHAR},
      </if>
      <if test="record.msgBody != null" >
        msg_body = #{record.msgBody,jdbcType=VARCHAR},
      </if>
      <if test="record.msgStatus != null" >
        msg_status = #{record.msgStatus,jdbcType=INTEGER},
      </if>
      <if test="record.createTime != null" >
        create_time = #{record.createTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_mq_producer_temp
    set id = #{record.id,jdbcType=VARCHAR},
      group_name = #{record.groupName,jdbcType=VARCHAR},
      msg_topic = #{record.msgTopic,jdbcType=VARCHAR},
      msg_tag = #{record.msgTag,jdbcType=VARCHAR},
      msg_key = #{record.msgKey,jdbcType=VARCHAR},
      msg_body = #{record.msgBody,jdbcType=VARCHAR},
      msg_status = #{record.msgStatus,jdbcType=INTEGER},
      create_time = #{record.createTime,jdbcType=TIMESTAMP}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeMqProducerTemp" >
    update trade_mq_producer_temp
    <set >
      <if test="groupName != null" >
        group_name = #{groupName,jdbcType=VARCHAR},
      </if>
      <if test="msgTopic != null" >
        msg_topic = #{msgTopic,jdbcType=VARCHAR},
      </if>
      <if test="msgTag != null" >
        msg_tag = #{msgTag,jdbcType=VARCHAR},
      </if>
      <if test="msgKey != null" >
        msg_key = #{msgKey,jdbcType=VARCHAR},
      </if>
      <if test="msgBody != null" >
        msg_body = #{msgBody,jdbcType=VARCHAR},
      </if>
      <if test="msgStatus != null" >
        msg_status = #{msgStatus,jdbcType=INTEGER},
      </if>
      <if test="createTime != null" >
        create_time = #{createTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where id = #{id,jdbcType=VARCHAR}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeMqProducerTemp" >
    update trade_mq_producer_temp
    set group_name = #{groupName,jdbcType=VARCHAR},
      msg_topic = #{msgTopic,jdbcType=VARCHAR},
      msg_tag = #{msgTag,jdbcType=VARCHAR},
      msg_key = #{msgKey,jdbcType=VARCHAR},
      msg_body = #{msgBody,jdbcType=VARCHAR},
      msg_status = #{msgStatus,jdbcType=INTEGER},
      create_time = #{createTime,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=VARCHAR}
  </update>
</mapper>
4.6、生成的 TradeOrderMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeOrderMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeOrder" >
    <id column="order_id" property="orderId" jdbcType="BIGINT" />
    <result column="user_id" property="userId" jdbcType="BIGINT" />
    <result column="order_status" property="orderStatus" jdbcType="INTEGER" />
    <result column="pay_status" property="payStatus" jdbcType="INTEGER" />
    <result column="shipping_status" property="shippingStatus" jdbcType="INTEGER" />
    <result column="address" property="address" jdbcType="VARCHAR" />
    <result column="consignee" property="consignee" jdbcType="VARCHAR" />
    <result column="goods_id" property="goodsId" jdbcType="BIGINT" />
    <result column="goods_number" property="goodsNumber" jdbcType="INTEGER" />
    <result column="goods_price" property="goodsPrice" jdbcType="DECIMAL" />
    <result column="goods_amount" property="goodsAmount" jdbcType="DECIMAL" />
    <result column="shipping_fee" property="shippingFee" jdbcType="DECIMAL" />
    <result column="order_amount" property="orderAmount" jdbcType="DECIMAL" />
    <result column="coupon_id" property="couponId" jdbcType="BIGINT" />
    <result column="coupon_paid" property="couponPaid" jdbcType="DECIMAL" />
    <result column="money_paid" property="moneyPaid" jdbcType="DECIMAL" />
    <result column="pay_amount" property="payAmount" jdbcType="DECIMAL" />
    <result column="add_time" property="addTime" jdbcType="TIMESTAMP" />
    <result column="confirm_time" property="confirmTime" jdbcType="TIMESTAMP" />
    <result column="pay_time" property="payTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    order_id, user_id, order_status, pay_status, shipping_status, address, consignee, 
    goods_id, goods_number, goods_price, goods_amount, shipping_fee, order_amount, coupon_id, 
    coupon_paid, money_paid, pay_amount, add_time, confirm_time, pay_time
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeOrderExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_order
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from trade_order
    where order_id = #{orderId,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from trade_order
    where order_id = #{orderId,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeOrderExample" >
    delete from trade_order
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeOrder" >
    insert into trade_order (order_id, user_id, order_status, 
      pay_status, shipping_status, address, 
      consignee, goods_id, goods_number, 
      goods_price, goods_amount, shipping_fee, 
      order_amount, coupon_id, coupon_paid, 
      money_paid, pay_amount, add_time, 
      confirm_time, pay_time)
    values (#{orderId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{orderStatus,jdbcType=INTEGER}, 
      #{payStatus,jdbcType=INTEGER}, #{shippingStatus,jdbcType=INTEGER}, #{address,jdbcType=VARCHAR}, 
      #{consignee,jdbcType=VARCHAR}, #{goodsId,jdbcType=BIGINT}, #{goodsNumber,jdbcType=INTEGER}, 
      #{goodsPrice,jdbcType=DECIMAL}, #{goodsAmount,jdbcType=DECIMAL}, #{shippingFee,jdbcType=DECIMAL}, 
      #{orderAmount,jdbcType=DECIMAL}, #{couponId,jdbcType=BIGINT}, #{couponPaid,jdbcType=DECIMAL}, 
      #{moneyPaid,jdbcType=DECIMAL}, #{payAmount,jdbcType=DECIMAL}, #{addTime,jdbcType=TIMESTAMP}, 
      #{confirmTime,jdbcType=TIMESTAMP}, #{payTime,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeOrder" >
    insert into trade_order
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="orderId != null" >
        order_id,
      </if>
      <if test="userId != null" >
        user_id,
      </if>
      <if test="orderStatus != null" >
        order_status,
      </if>
      <if test="payStatus != null" >
        pay_status,
      </if>
      <if test="shippingStatus != null" >
        shipping_status,
      </if>
      <if test="address != null" >
        address,
      </if>
      <if test="consignee != null" >
        consignee,
      </if>
      <if test="goodsId != null" >
        goods_id,
      </if>
      <if test="goodsNumber != null" >
        goods_number,
      </if>
      <if test="goodsPrice != null" >
        goods_price,
      </if>
      <if test="goodsAmount != null" >
        goods_amount,
      </if>
      <if test="shippingFee != null" >
        shipping_fee,
      </if>
      <if test="orderAmount != null" >
        order_amount,
      </if>
      <if test="couponId != null" >
        coupon_id,
      </if>
      <if test="couponPaid != null" >
        coupon_paid,
      </if>
      <if test="moneyPaid != null" >
        money_paid,
      </if>
      <if test="payAmount != null" >
        pay_amount,
      </if>
      <if test="addTime != null" >
        add_time,
      </if>
      <if test="confirmTime != null" >
        confirm_time,
      </if>
      <if test="payTime != null" >
        pay_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="orderId != null" >
        #{orderId,jdbcType=BIGINT},
      </if>
      <if test="userId != null" >
        #{userId,jdbcType=BIGINT},
      </if>
      <if test="orderStatus != null" >
        #{orderStatus,jdbcType=INTEGER},
      </if>
      <if test="payStatus != null" >
        #{payStatus,jdbcType=INTEGER},
      </if>
      <if test="shippingStatus != null" >
        #{shippingStatus,jdbcType=INTEGER},
      </if>
      <if test="address != null" >
        #{address,jdbcType=VARCHAR},
      </if>
      <if test="consignee != null" >
        #{consignee,jdbcType=VARCHAR},
      </if>
      <if test="goodsId != null" >
        #{goodsId,jdbcType=BIGINT},
      </if>
      <if test="goodsNumber != null" >
        #{goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="goodsPrice != null" >
        #{goodsPrice,jdbcType=DECIMAL},
      </if>
      <if test="goodsAmount != null" >
        #{goodsAmount,jdbcType=DECIMAL},
      </if>
      <if test="shippingFee != null" >
        #{shippingFee,jdbcType=DECIMAL},
      </if>
      <if test="orderAmount != null" >
        #{orderAmount,jdbcType=DECIMAL},
      </if>
      <if test="couponId != null" >
        #{couponId,jdbcType=BIGINT},
      </if>
      <if test="couponPaid != null" >
        #{couponPaid,jdbcType=DECIMAL},
      </if>
      <if test="moneyPaid != null" >
        #{moneyPaid,jdbcType=DECIMAL},
      </if>
      <if test="payAmount != null" >
        #{payAmount,jdbcType=DECIMAL},
      </if>
      <if test="addTime != null" >
        #{addTime,jdbcType=TIMESTAMP},
      </if>
      <if test="confirmTime != null" >
        #{confirmTime,jdbcType=TIMESTAMP},
      </if>
      <if test="payTime != null" >
        #{payTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeOrderExample" resultType="java.lang.Integer" >
    select count(*) from trade_order
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_order
    <set >
      <if test="record.orderId != null" >
        order_id = #{record.orderId,jdbcType=BIGINT},
      </if>
      <if test="record.userId != null" >
        user_id = #{record.userId,jdbcType=BIGINT},
      </if>
      <if test="record.orderStatus != null" >
        order_status = #{record.orderStatus,jdbcType=INTEGER},
      </if>
      <if test="record.payStatus != null" >
        pay_status = #{record.payStatus,jdbcType=INTEGER},
      </if>
      <if test="record.shippingStatus != null" >
        shipping_status = #{record.shippingStatus,jdbcType=INTEGER},
      </if>
      <if test="record.address != null" >
        address = #{record.address,jdbcType=VARCHAR},
      </if>
      <if test="record.consignee != null" >
        consignee = #{record.consignee,jdbcType=VARCHAR},
      </if>
      <if test="record.goodsId != null" >
        goods_id = #{record.goodsId,jdbcType=BIGINT},
      </if>
      <if test="record.goodsNumber != null" >
        goods_number = #{record.goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="record.goodsPrice != null" >
        goods_price = #{record.goodsPrice,jdbcType=DECIMAL},
      </if>
      <if test="record.goodsAmount != null" >
        goods_amount = #{record.goodsAmount,jdbcType=DECIMAL},
      </if>
      <if test="record.shippingFee != null" >
        shipping_fee = #{record.shippingFee,jdbcType=DECIMAL},
      </if>
      <if test="record.orderAmount != null" >
        order_amount = #{record.orderAmount,jdbcType=DECIMAL},
      </if>
      <if test="record.couponId != null" >
        coupon_id = #{record.couponId,jdbcType=BIGINT},
      </if>
      <if test="record.couponPaid != null" >
        coupon_paid = #{record.couponPaid,jdbcType=DECIMAL},
      </if>
      <if test="record.moneyPaid != null" >
        money_paid = #{record.moneyPaid,jdbcType=DECIMAL},
      </if>
      <if test="record.payAmount != null" >
        pay_amount = #{record.payAmount,jdbcType=DECIMAL},
      </if>
      <if test="record.addTime != null" >
        add_time = #{record.addTime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.confirmTime != null" >
        confirm_time = #{record.confirmTime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.payTime != null" >
        pay_time = #{record.payTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_order
    set order_id = #{record.orderId,jdbcType=BIGINT},
      user_id = #{record.userId,jdbcType=BIGINT},
      order_status = #{record.orderStatus,jdbcType=INTEGER},
      pay_status = #{record.payStatus,jdbcType=INTEGER},
      shipping_status = #{record.shippingStatus,jdbcType=INTEGER},
      address = #{record.address,jdbcType=VARCHAR},
      consignee = #{record.consignee,jdbcType=VARCHAR},
      goods_id = #{record.goodsId,jdbcType=BIGINT},
      goods_number = #{record.goodsNumber,jdbcType=INTEGER},
      goods_price = #{record.goodsPrice,jdbcType=DECIMAL},
      goods_amount = #{record.goodsAmount,jdbcType=DECIMAL},
      shipping_fee = #{record.shippingFee,jdbcType=DECIMAL},
      order_amount = #{record.orderAmount,jdbcType=DECIMAL},
      coupon_id = #{record.couponId,jdbcType=BIGINT},
      coupon_paid = #{record.couponPaid,jdbcType=DECIMAL},
      money_paid = #{record.moneyPaid,jdbcType=DECIMAL},
      pay_amount = #{record.payAmount,jdbcType=DECIMAL},
      add_time = #{record.addTime,jdbcType=TIMESTAMP},
      confirm_time = #{record.confirmTime,jdbcType=TIMESTAMP},
      pay_time = #{record.payTime,jdbcType=TIMESTAMP}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeOrder" >
    update trade_order
    <set >
      <if test="userId != null" >
        user_id = #{userId,jdbcType=BIGINT},
      </if>
      <if test="orderStatus != null" >
        order_status = #{orderStatus,jdbcType=INTEGER},
      </if>
      <if test="payStatus != null" >
        pay_status = #{payStatus,jdbcType=INTEGER},
      </if>
      <if test="shippingStatus != null" >
        shipping_status = #{shippingStatus,jdbcType=INTEGER},
      </if>
      <if test="address != null" >
        address = #{address,jdbcType=VARCHAR},
      </if>
      <if test="consignee != null" >
        consignee = #{consignee,jdbcType=VARCHAR},
      </if>
      <if test="goodsId != null" >
        goods_id = #{goodsId,jdbcType=BIGINT},
      </if>
      <if test="goodsNumber != null" >
        goods_number = #{goodsNumber,jdbcType=INTEGER},
      </if>
      <if test="goodsPrice != null" >
        goods_price = #{goodsPrice,jdbcType=DECIMAL},
      </if>
      <if test="goodsAmount != null" >
        goods_amount = #{goodsAmount,jdbcType=DECIMAL},
      </if>
      <if test="shippingFee != null" >
        shipping_fee = #{shippingFee,jdbcType=DECIMAL},
      </if>
      <if test="orderAmount != null" >
        order_amount = #{orderAmount,jdbcType=DECIMAL},
      </if>
      <if test="couponId != null" >
        coupon_id = #{couponId,jdbcType=BIGINT},
      </if>
      <if test="couponPaid != null" >
        coupon_paid = #{couponPaid,jdbcType=DECIMAL},
      </if>
      <if test="moneyPaid != null" >
        money_paid = #{moneyPaid,jdbcType=DECIMAL},
      </if>
      <if test="payAmount != null" >
        pay_amount = #{payAmount,jdbcType=DECIMAL},
      </if>
      <if test="addTime != null" >
        add_time = #{addTime,jdbcType=TIMESTAMP},
      </if>
      <if test="confirmTime != null" >
        confirm_time = #{confirmTime,jdbcType=TIMESTAMP},
      </if>
      <if test="payTime != null" >
        pay_time = #{payTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where order_id = #{orderId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeOrder" >
    update trade_order
    set user_id = #{userId,jdbcType=BIGINT},
      order_status = #{orderStatus,jdbcType=INTEGER},
      pay_status = #{payStatus,jdbcType=INTEGER},
      shipping_status = #{shippingStatus,jdbcType=INTEGER},
      address = #{address,jdbcType=VARCHAR},
      consignee = #{consignee,jdbcType=VARCHAR},
      goods_id = #{goodsId,jdbcType=BIGINT},
      goods_number = #{goodsNumber,jdbcType=INTEGER},
      goods_price = #{goodsPrice,jdbcType=DECIMAL},
      goods_amount = #{goodsAmount,jdbcType=DECIMAL},
      shipping_fee = #{shippingFee,jdbcType=DECIMAL},
      order_amount = #{orderAmount,jdbcType=DECIMAL},
      coupon_id = #{couponId,jdbcType=BIGINT},
      coupon_paid = #{couponPaid,jdbcType=DECIMAL},
      money_paid = #{moneyPaid,jdbcType=DECIMAL},
      pay_amount = #{payAmount,jdbcType=DECIMAL},
      add_time = #{addTime,jdbcType=TIMESTAMP},
      confirm_time = #{confirmTime,jdbcType=TIMESTAMP},
      pay_time = #{payTime,jdbcType=TIMESTAMP}
    where order_id = #{orderId,jdbcType=BIGINT}
  </update>
</mapper>
4.7、生成的 TradePayMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradePayMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradePay" >
    <id column="pay_id" property="payId" jdbcType="BIGINT" />
    <result column="order_id" property="orderId" jdbcType="BIGINT" />
    <result column="pay_amount" property="payAmount" jdbcType="DECIMAL" />
    <result column="is_paid" property="isPaid" jdbcType="INTEGER" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    pay_id, order_id, pay_amount, is_paid
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradePayExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_pay
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from trade_pay
    where pay_id = #{payId,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from trade_pay
    where pay_id = #{payId,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradePayExample" >
    delete from trade_pay
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradePay" >
    insert into trade_pay (pay_id, order_id, pay_amount, 
      is_paid)
    values (#{payId,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT}, #{payAmount,jdbcType=DECIMAL}, 
      #{isPaid,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradePay" >
    insert into trade_pay
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="payId != null" >
        pay_id,
      </if>
      <if test="orderId != null" >
        order_id,
      </if>
      <if test="payAmount != null" >
        pay_amount,
      </if>
      <if test="isPaid != null" >
        is_paid,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="payId != null" >
        #{payId,jdbcType=BIGINT},
      </if>
      <if test="orderId != null" >
        #{orderId,jdbcType=BIGINT},
      </if>
      <if test="payAmount != null" >
        #{payAmount,jdbcType=DECIMAL},
      </if>
      <if test="isPaid != null" >
        #{isPaid,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradePayExample" resultType="java.lang.Integer" >
    select count(*) from trade_pay
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_pay
    <set >
      <if test="record.payId != null" >
        pay_id = #{record.payId,jdbcType=BIGINT},
      </if>
      <if test="record.orderId != null" >
        order_id = #{record.orderId,jdbcType=BIGINT},
      </if>
      <if test="record.payAmount != null" >
        pay_amount = #{record.payAmount,jdbcType=DECIMAL},
      </if>
      <if test="record.isPaid != null" >
        is_paid = #{record.isPaid,jdbcType=INTEGER},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_pay
    set pay_id = #{record.payId,jdbcType=BIGINT},
      order_id = #{record.orderId,jdbcType=BIGINT},
      pay_amount = #{record.payAmount,jdbcType=DECIMAL},
      is_paid = #{record.isPaid,jdbcType=INTEGER}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradePay" >
    update trade_pay
    <set >
      <if test="orderId != null" >
        order_id = #{orderId,jdbcType=BIGINT},
      </if>
      <if test="payAmount != null" >
        pay_amount = #{payAmount,jdbcType=DECIMAL},
      </if>
      <if test="isPaid != null" >
        is_paid = #{isPaid,jdbcType=INTEGER},
      </if>
    </set>
    where pay_id = #{payId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradePay" >
    update trade_pay
    set order_id = #{orderId,jdbcType=BIGINT},
      pay_amount = #{payAmount,jdbcType=DECIMAL},
      is_paid = #{isPaid,jdbcType=INTEGER}
    where pay_id = #{payId,jdbcType=BIGINT}
  </update>
</mapper>
4.8、生成的 TradeUserMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeUserMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeUser" >
    <id column="user_id" property="userId" jdbcType="BIGINT" />
    <result column="user_name" property="userName" jdbcType="VARCHAR" />
    <result column="user_password" property="userPassword" jdbcType="VARCHAR" />
    <result column="user_mobile" property="userMobile" jdbcType="VARCHAR" />
    <result column="user_score" property="userScore" jdbcType="INTEGER" />
    <result column="user_reg_time" property="userRegTime" jdbcType="TIMESTAMP" />
    <result column="user_money" property="userMoney" jdbcType="DECIMAL" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    user_id, user_name, user_password, user_mobile, user_score, user_reg_time, user_money
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeUserExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_user
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from trade_user
    where user_id = #{userId,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from trade_user
    where user_id = #{userId,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeUserExample" >
    delete from trade_user
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeUser" >
    insert into trade_user (user_id, user_name, user_password, 
      user_mobile, user_score, user_reg_time, 
      user_money)
    values (#{userId,jdbcType=BIGINT}, #{userName,jdbcType=VARCHAR}, #{userPassword,jdbcType=VARCHAR}, 
      #{userMobile,jdbcType=VARCHAR}, #{userScore,jdbcType=INTEGER}, #{userRegTime,jdbcType=TIMESTAMP}, 
      #{userMoney,jdbcType=DECIMAL})
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeUser" >
    insert into trade_user
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="userId != null" >
        user_id,
      </if>
      <if test="userName != null" >
        user_name,
      </if>
      <if test="userPassword != null" >
        user_password,
      </if>
      <if test="userMobile != null" >
        user_mobile,
      </if>
      <if test="userScore != null" >
        user_score,
      </if>
      <if test="userRegTime != null" >
        user_reg_time,
      </if>
      <if test="userMoney != null" >
        user_money,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="userId != null" >
        #{userId,jdbcType=BIGINT},
      </if>
      <if test="userName != null" >
        #{userName,jdbcType=VARCHAR},
      </if>
      <if test="userPassword != null" >
        #{userPassword,jdbcType=VARCHAR},
      </if>
      <if test="userMobile != null" >
        #{userMobile,jdbcType=VARCHAR},
      </if>
      <if test="userScore != null" >
        #{userScore,jdbcType=INTEGER},
      </if>
      <if test="userRegTime != null" >
        #{userRegTime,jdbcType=TIMESTAMP},
      </if>
      <if test="userMoney != null" >
        #{userMoney,jdbcType=DECIMAL},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeUserExample" resultType="java.lang.Integer" >
    select count(*) from trade_user
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_user
    <set >
      <if test="record.userId != null" >
        user_id = #{record.userId,jdbcType=BIGINT},
      </if>
      <if test="record.userName != null" >
        user_name = #{record.userName,jdbcType=VARCHAR},
      </if>
      <if test="record.userPassword != null" >
        user_password = #{record.userPassword,jdbcType=VARCHAR},
      </if>
      <if test="record.userMobile != null" >
        user_mobile = #{record.userMobile,jdbcType=VARCHAR},
      </if>
      <if test="record.userScore != null" >
        user_score = #{record.userScore,jdbcType=INTEGER},
      </if>
      <if test="record.userRegTime != null" >
        user_reg_time = #{record.userRegTime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.userMoney != null" >
        user_money = #{record.userMoney,jdbcType=DECIMAL},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_user
    set user_id = #{record.userId,jdbcType=BIGINT},
      user_name = #{record.userName,jdbcType=VARCHAR},
      user_password = #{record.userPassword,jdbcType=VARCHAR},
      user_mobile = #{record.userMobile,jdbcType=VARCHAR},
      user_score = #{record.userScore,jdbcType=INTEGER},
      user_reg_time = #{record.userRegTime,jdbcType=TIMESTAMP},
      user_money = #{record.userMoney,jdbcType=DECIMAL}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeUser" >
    update trade_user
    <set >
      <if test="userName != null" >
        user_name = #{userName,jdbcType=VARCHAR},
      </if>
      <if test="userPassword != null" >
        user_password = #{userPassword,jdbcType=VARCHAR},
      </if>
      <if test="userMobile != null" >
        user_mobile = #{userMobile,jdbcType=VARCHAR},
      </if>
      <if test="userScore != null" >
        user_score = #{userScore,jdbcType=INTEGER},
      </if>
      <if test="userRegTime != null" >
        user_reg_time = #{userRegTime,jdbcType=TIMESTAMP},
      </if>
      <if test="userMoney != null" >
        user_money = #{userMoney,jdbcType=DECIMAL},
      </if>
    </set>
    where user_id = #{userId,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeUser" >
    update trade_user
    set user_name = #{userName,jdbcType=VARCHAR},
      user_password = #{userPassword,jdbcType=VARCHAR},
      user_mobile = #{userMobile,jdbcType=VARCHAR},
      user_score = #{userScore,jdbcType=INTEGER},
      user_reg_time = #{userRegTime,jdbcType=TIMESTAMP},
      user_money = #{userMoney,jdbcType=DECIMAL}
    where user_id = #{userId,jdbcType=BIGINT}
  </update>
</mapper>
4.9、生成的 TradeUserMoneyLogMapper.xml 文件。
bash 复制代码
<?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.itheima.shop.mapper.TradeUserMoneyLogMapper" >
  <resultMap id="BaseResultMap" type="com.itheima.shop.pojo.TradeUserMoneyLog" >
    <id column="user_id" property="userId" jdbcType="BIGINT" />
    <id column="order_id" property="orderId" jdbcType="BIGINT" />
    <id column="money_log_type" property="moneyLogType" jdbcType="INTEGER" />
    <result column="use_money" property="useMoney" jdbcType="DECIMAL" />
    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    user_id, order_id, money_log_type, use_money, create_time
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeUserMoneyLogExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from trade_user_money_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.itheima.shop.pojo.TradeUserMoneyLogKey" >
    select 
    <include refid="Base_Column_List" />
    from trade_user_money_log
    where user_id = #{userId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
      and money_log_type = #{moneyLogType,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeUserMoneyLogKey" >
    delete from trade_user_money_log
    where user_id = #{userId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
      and money_log_type = #{moneyLogType,jdbcType=INTEGER}
  </delete>
  <delete id="deleteByExample" parameterType="com.itheima.shop.pojo.TradeUserMoneyLogExample" >
    delete from trade_user_money_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.itheima.shop.pojo.TradeUserMoneyLog" >
    insert into trade_user_money_log (user_id, order_id, money_log_type, 
      use_money, create_time)
    values (#{userId,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT}, #{moneyLogType,jdbcType=INTEGER}, 
      #{useMoney,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.itheima.shop.pojo.TradeUserMoneyLog" >
    insert into trade_user_money_log
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="userId != null" >
        user_id,
      </if>
      <if test="orderId != null" >
        order_id,
      </if>
      <if test="moneyLogType != null" >
        money_log_type,
      </if>
      <if test="useMoney != null" >
        use_money,
      </if>
      <if test="createTime != null" >
        create_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="userId != null" >
        #{userId,jdbcType=BIGINT},
      </if>
      <if test="orderId != null" >
        #{orderId,jdbcType=BIGINT},
      </if>
      <if test="moneyLogType != null" >
        #{moneyLogType,jdbcType=INTEGER},
      </if>
      <if test="useMoney != null" >
        #{useMoney,jdbcType=DECIMAL},
      </if>
      <if test="createTime != null" >
        #{createTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.itheima.shop.pojo.TradeUserMoneyLogExample" resultType="java.lang.Integer" >
    select count(*) from trade_user_money_log
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update trade_user_money_log
    <set >
      <if test="record.userId != null" >
        user_id = #{record.userId,jdbcType=BIGINT},
      </if>
      <if test="record.orderId != null" >
        order_id = #{record.orderId,jdbcType=BIGINT},
      </if>
      <if test="record.moneyLogType != null" >
        money_log_type = #{record.moneyLogType,jdbcType=INTEGER},
      </if>
      <if test="record.useMoney != null" >
        use_money = #{record.useMoney,jdbcType=DECIMAL},
      </if>
      <if test="record.createTime != null" >
        create_time = #{record.createTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update trade_user_money_log
    set user_id = #{record.userId,jdbcType=BIGINT},
      order_id = #{record.orderId,jdbcType=BIGINT},
      money_log_type = #{record.moneyLogType,jdbcType=INTEGER},
      use_money = #{record.useMoney,jdbcType=DECIMAL},
      create_time = #{record.createTime,jdbcType=TIMESTAMP}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.itheima.shop.pojo.TradeUserMoneyLog" >
    update trade_user_money_log
    <set >
      <if test="useMoney != null" >
        use_money = #{useMoney,jdbcType=DECIMAL},
      </if>
      <if test="createTime != null" >
        create_time = #{createTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where user_id = #{userId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
      and money_log_type = #{moneyLogType,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.itheima.shop.pojo.TradeUserMoneyLog" >
    update trade_user_money_log
    set use_money = #{useMoney,jdbcType=DECIMAL},
      create_time = #{createTime,jdbcType=TIMESTAMP}
    where user_id = #{userId,jdbcType=BIGINT}
      and order_id = #{orderId,jdbcType=BIGINT}
      and money_log_type = #{moneyLogType,jdbcType=INTEGER}
  </update>
</mapper>

5、创建 shop-pojo 实体类 工程,复制导入 生成的 POJO 类文件。

5.1、在 pom.xml 中,导入依赖坐标。
bash 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>shop-parent</artifactId>
        <groupId>com.iteima.shop</groupId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../shop-parent/pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>shop-pojo</artifactId>

</project>
<!-- shop\shop-pojo\pom.xml -->
5.2、创建 类 MQEntity.java
bash 复制代码
package com.itheima.entity;

import java.math.BigDecimal;

public class MQEntity {

    private Long orderId;
    private Long couponId;
    private Long userId;
    private BigDecimal userMoney;
    private Long goodsId;
    private Integer goodsNum;

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public BigDecimal getUserMoney() {
        return userMoney;
    }

    public void setUserMoney(BigDecimal userMoney) {
        this.userMoney = userMoney;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public Integer getGoodsNum() {
        return goodsNum;
    }

    public void setGoodsNum(Integer goodsNum) {
        this.goodsNum = goodsNum;
    }
}
5.3、创建 类 Result.java
bash 复制代码
package com.itheima.entity;

import java.io.Serializable;

/**
 * 结果实体类
 */
public class Result implements Serializable {
    private Boolean success;
    private String message;

    public Result() {
    }

    public Result(Boolean success, String message) {
        this.success = success;
        this.message = message;
    }

    public Boolean getSuccess() {
        return success;
    }

    public void setSuccess(Boolean success) {
        this.success = success;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    @Override
    public String toString() {
        return "Result{" +
                "success=" + success +
                ", message='" + message + '\'' +
                '}';
    }
}
5.4、复制导入 POJO 类 TradeCoupon.java
5.5、复制导入 POJO 类 TradeCouponExample.java
5.6、复制导入 POJO 类 TradeGoods.java
5.7、复制导入 POJO 类 TradeGoodsExample.java
5.8、复制导入 POJO 类 TradeGoodsNumberLog.java
5.9、复制导入 POJO 类 TradeGoodsNumberLogExample.java
5.10、复制导入 POJO 类 TradeGoodsNumberLogKey.java
5.11、复制导入 POJO 类 TradeMqConsumerLog.java
5.12、复制导入 POJO 类 TradeMqConsumerLogExample.java
5.13、复制导入 POJO 类 TradeMqConsumerLogKey .java
5.14、复制导入 POJO 类 TradeMqProducerTemp.java
5.15、复制导入 POJO 类 TradeMqProducerTempExample.java
5.16、复制导入 POJO 类 TradeOrder.java
5.17、复制导入 POJO 类 TradeOrderExample.java
5.18、复制导入 POJO 类 TradePay.java
5.19、复制导入 POJO 类 TradePayExample.java
5.20、复制导入 POJO 类 TradeUser.java
5.21、复制导入 POJO 类 TradeUserExample.java
5.22、复制导入 POJO 类 TradeUserMoneyLog.java
5.23、复制导入 POJO 类 TradeUserMoneyLogExample.java
5.24、复制导入 POJO 类 TradeUserMoneyLogKey.java

6、把逆向工程生成的 mapper 类文件 和 .xml 文件,复制导入到 各模块工程。

上一节关联链接请点击:
# RocketMQ 实战:模拟电商网站场景综合案例(四)

环境搭建:数据库表结构介绍--项目工程初始化 查看 请点击:
# RocketMQ 实战:模拟电商网站场景综合案例(三)

mybatis 逆向工程 生成 POJO 类 源文件 和 mapper 映射文件 查看 请点击:
RocketMQ 实战:模拟电商网站场景综合案例(四)

相关推荐
Theodore_10223 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
冰帝海岸4 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象5 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了5 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
jokerest1235 小时前
web——sqliabs靶场——第十三关——报错注入+布尔盲注
mybatis
小二·5 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic6 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王6 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康6 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神6 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式