mybatis-generator扩展教程系列 -- 自定义sql xml文件

简介:          今天抽空写一下生成器比较重要的环节,如何自定义mybatis生成器的sql xml文件,因为原生出来的格式不好看,命名也不符合我们日常使用习惯,很多冗余的sql节点,下面我直接直入主题演示代码了,还是老规矩使用之前教程延续下来的项目用例1.

         今天抽空写一下生成器比较重要的环节,如何自定义mybatis生成器的sql xml文件,因为原生出来的格式不好看,命名也不符合我们日常使用习惯,很多冗余的sql节点,下面我直接直入主题演示代码了,还是老规矩使用之前教程延续下来的项目用例


1.先看看我们原始生成出来的mapper.xml文件,1.节点间没有空行不符合我们日常格式 2.CRUD方法太累赘,我们其实只需要insert,update,delete,select

<?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.test.dao.QfdSketchMapper">
  <resultMap id="BaseResultMap" type="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="courseName" jdbcType="VARCHAR" property="coursename" />
    <result column="courseReq" jdbcType="VARCHAR" property="coursereq" />
    <result column="teaId" jdbcType="VARCHAR" property="teaid" />
    <result column="teaName" jdbcType="VARCHAR" property="teaname" />
    <result column="stuId" jdbcType="VARCHAR" property="stuid" />
    <result column="stuName" jdbcType="VARCHAR" property="stuname" />
    <result column="stuPhone" jdbcType="VARCHAR" property="stuphone" />
    <result column="textbookId" jdbcType="BIGINT" property="textbookid" />
    <result column="creator" jdbcType="VARCHAR" property="creator" />
    <result column="lastModifier" jdbcType="VARCHAR" property="lastmodifier" />
    <result column="countDate" jdbcType="INTEGER" property="countdate" />
    <result column="countTime" jdbcType="INTEGER" property="counttime" />
    <result column="countStu" jdbcType="INTEGER" property="countstu" />
    <result column="sketchType" jdbcType="INTEGER" property="sketchtype" />
    <result column="courseStyle" jdbcType="INTEGER" property="coursestyle" />
    <result column="classType" jdbcType="INTEGER" property="classtype" />
    <result column="process" jdbcType="INTEGER" property="process" />
    <result column="courseStatus" jdbcType="INTEGER" property="coursestatus" />
    <result column="pay" jdbcType="VARCHAR" property="pay" />
    <result column="perPay" jdbcType="VARCHAR" property="perpay" />
    <result column="couponPay" jdbcType="VARCHAR" property="couponpay" />
    <result column="originalPay" jdbcType="VARCHAR" property="originalpay" />
    <result column="couponRule" jdbcType="INTEGER" property="couponrule" />
    <result column="beginDate" jdbcType="BIGINT" property="begindate" />
    <result column="endDate" jdbcType="BIGINT" property="enddate" />
    <result column="courseNum" jdbcType="INTEGER" property="coursenum" />
    <result column="hasNum" jdbcType="INTEGER" property="hasnum" />
    <result column="cancelNum" jdbcType="INTEGER" property="cancelnum" />
    <result column="courseNumInput" jdbcType="INTEGER" property="coursenuminput" />
    <result column="orderNum" jdbcType="INTEGER" property="ordernum" />
    <result column="fav" jdbcType="BIGINT" property="fav" />
    <result column="vipLevel" jdbcType="INTEGER" property="viplevel" />
    <result column="cancelReason" jdbcType="INTEGER" property="cancelreason" />
    <result column="createDate" jdbcType="BIGINT" property="createdate" />
    <result column="lastModDate" jdbcType="BIGINT" property="lastmoddate" />
    <result column="formatter" jdbcType="VARCHAR" property="formatter" />
    <result column="status" jdbcType="TINYINT" property="status" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    id, courseName, courseReq, teaId, teaName, stuId, stuName, stuPhone, textbookId, 
    creator, lastModifier, countDate, countTime, countStu, sketchType, courseStyle, classType, 
    process, courseStatus, pay, perPay, couponPay, originalPay, couponRule, beginDate, 
    endDate, courseNum, hasNum, cancelNum, courseNumInput, orderNum, fav, vipLevel, cancelReason, 
    createDate, lastModDate, formatter, status
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    select 
    <include refid="Base_Column_List" />
    from qfd_sketch
    where id = #{id,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    delete from qfd_sketch
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    insert into qfd_sketch (id, courseName, courseReq, 
      teaId, teaName, stuId, 
      stuName, stuPhone, textbookId, 
      creator, lastModifier, countDate, 
      countTime, countStu, sketchType, 
      courseStyle, classType, process, 
      courseStatus, pay, perPay, 
      couponPay, originalPay, couponRule, 
      beginDate, endDate, courseNum, 
      hasNum, cancelNum, courseNumInput, 
      orderNum, fav, vipLevel, 
      cancelReason, createDate, lastModDate, 
      formatter, status)
    values (#{id,jdbcType=BIGINT}, #{coursename,jdbcType=VARCHAR}, #{coursereq,jdbcType=VARCHAR}, 
      #{teaid,jdbcType=VARCHAR}, #{teaname,jdbcType=VARCHAR}, #{stuid,jdbcType=VARCHAR}, 
      #{stuname,jdbcType=VARCHAR}, #{stuphone,jdbcType=VARCHAR}, #{textbookid,jdbcType=BIGINT}, 
      #{creator,jdbcType=VARCHAR}, #{lastmodifier,jdbcType=VARCHAR}, #{countdate,jdbcType=INTEGER}, 
      #{counttime,jdbcType=INTEGER}, #{countstu,jdbcType=INTEGER}, #{sketchtype,jdbcType=INTEGER}, 
      #{coursestyle,jdbcType=INTEGER}, #{classtype,jdbcType=INTEGER}, #{process,jdbcType=INTEGER}, 
      #{coursestatus,jdbcType=INTEGER}, #{pay,jdbcType=VARCHAR}, #{perpay,jdbcType=VARCHAR}, 
      #{couponpay,jdbcType=VARCHAR}, #{originalpay,jdbcType=VARCHAR}, #{couponrule,jdbcType=INTEGER}, 
      #{begindate,jdbcType=BIGINT}, #{enddate,jdbcType=BIGINT}, #{coursenum,jdbcType=INTEGER}, 
      #{hasnum,jdbcType=INTEGER}, #{cancelnum,jdbcType=INTEGER}, #{coursenuminput,jdbcType=INTEGER}, 
      #{ordernum,jdbcType=INTEGER}, #{fav,jdbcType=BIGINT}, #{viplevel,jdbcType=INTEGER}, 
      #{cancelreason,jdbcType=INTEGER}, #{createdate,jdbcType=BIGINT}, #{lastmoddate,jdbcType=BIGINT}, 
      #{formatter,jdbcType=VARCHAR}, #{status,jdbcType=TINYINT})
  </insert>
  <insert id="insertSelective" parameterType="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    insert into qfd_sketch
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="coursename != null">
        courseName,
      </if>
      <if test="coursereq != null">
        courseReq,
      </if>
      <if test="teaid != null">
        teaId,
      </if>
      <if test="teaname != null">
        teaName,
      </if>
      <if test="stuid != null">
        stuId,
      </if>
      <if test="stuname != null">
        stuName,
      </if>
      <if test="stuphone != null">
        stuPhone,
      </if>
      <if test="textbookid != null">
        textbookId,
      </if>
      <if test="creator != null">
        creator,
      </if>
      <if test="lastmodifier != null">
        lastModifier,
      </if>
      <if test="countdate != null">
        countDate,
      </if>
      <if test="counttime != null">
        countTime,
      </if>
      <if test="countstu != null">
        countStu,
      </if>
      <if test="sketchtype != null">
        sketchType,
      </if>
      <if test="coursestyle != null">
        courseStyle,
      </if>
      <if test="classtype != null">
        classType,
      </if>
      <if test="process != null">
        process,
      </if>
      <if test="coursestatus != null">
        courseStatus,
      </if>
      <if test="pay != null">
        pay,
      </if>
      <if test="perpay != null">
        perPay,
      </if>
      <if test="couponpay != null">
        couponPay,
      </if>
      <if test="originalpay != null">
        originalPay,
      </if>
      <if test="couponrule != null">
        couponRule,
      </if>
      <if test="begindate != null">
        beginDate,
      </if>
      <if test="enddate != null">
        endDate,
      </if>
      <if test="coursenum != null">
        courseNum,
      </if>
      <if test="hasnum != null">
        hasNum,
      </if>
      <if test="cancelnum != null">
        cancelNum,
      </if>
      <if test="coursenuminput != null">
        courseNumInput,
      </if>
      <if test="ordernum != null">
        orderNum,
      </if>
      <if test="fav != null">
        fav,
      </if>
      <if test="viplevel != null">
        vipLevel,
      </if>
      <if test="cancelreason != null">
        cancelReason,
      </if>
      <if test="createdate != null">
        createDate,
      </if>
      <if test="lastmoddate != null">
        lastModDate,
      </if>
      <if test="formatter != null">
        formatter,
      </if>
      <if test="status != null">
        status,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="coursename != null">
        #{coursename,jdbcType=VARCHAR},
      </if>
      <if test="coursereq != null">
        #{coursereq,jdbcType=VARCHAR},
      </if>
      <if test="teaid != null">
        #{teaid,jdbcType=VARCHAR},
      </if>
      <if test="teaname != null">
        #{teaname,jdbcType=VARCHAR},
      </if>
      <if test="stuid != null">
        #{stuid,jdbcType=VARCHAR},
      </if>
      <if test="stuname != null">
        #{stuname,jdbcType=VARCHAR},
      </if>
      <if test="stuphone != null">
        #{stuphone,jdbcType=VARCHAR},
      </if>
      <if test="textbookid != null">
        #{textbookid,jdbcType=BIGINT},
      </if>
      <if test="creator != null">
        #{creator,jdbcType=VARCHAR},
      </if>
      <if test="lastmodifier != null">
        #{lastmodifier,jdbcType=VARCHAR},
      </if>
      <if test="countdate != null">
        #{countdate,jdbcType=INTEGER},
      </if>
      <if test="counttime != null">
        #{counttime,jdbcType=INTEGER},
      </if>
      <if test="countstu != null">
        #{countstu,jdbcType=INTEGER},
      </if>
      <if test="sketchtype != null">
        #{sketchtype,jdbcType=INTEGER},
      </if>
      <if test="coursestyle != null">
        #{coursestyle,jdbcType=INTEGER},
      </if>
      <if test="classtype != null">
        #{classtype,jdbcType=INTEGER},
      </if>
      <if test="process != null">
        #{process,jdbcType=INTEGER},
      </if>
      <if test="coursestatus != null">
        #{coursestatus,jdbcType=INTEGER},
      </if>
      <if test="pay != null">
        #{pay,jdbcType=VARCHAR},
      </if>
      <if test="perpay != null">
        #{perpay,jdbcType=VARCHAR},
      </if>
      <if test="couponpay != null">
        #{couponpay,jdbcType=VARCHAR},
      </if>
      <if test="originalpay != null">
        #{originalpay,jdbcType=VARCHAR},
      </if>
      <if test="couponrule != null">
        #{couponrule,jdbcType=INTEGER},
      </if>
      <if test="begindate != null">
        #{begindate,jdbcType=BIGINT},
      </if>
      <if test="enddate != null">
        #{enddate,jdbcType=BIGINT},
      </if>
      <if test="coursenum != null">
        #{coursenum,jdbcType=INTEGER},
      </if>
      <if test="hasnum != null">
        #{hasnum,jdbcType=INTEGER},
      </if>
      <if test="cancelnum != null">
        #{cancelnum,jdbcType=INTEGER},
      </if>
      <if test="coursenuminput != null">
        #{coursenuminput,jdbcType=INTEGER},
      </if>
      <if test="ordernum != null">
        #{ordernum,jdbcType=INTEGER},
      </if>
      <if test="fav != null">
        #{fav,jdbcType=BIGINT},
      </if>
      <if test="viplevel != null">
        #{viplevel,jdbcType=INTEGER},
      </if>
      <if test="cancelreason != null">
        #{cancelreason,jdbcType=INTEGER},
      </if>
      <if test="createdate != null">
        #{createdate,jdbcType=BIGINT},
      </if>
      <if test="lastmoddate != null">
        #{lastmoddate,jdbcType=BIGINT},
      </if>
      <if test="formatter != null">
        #{formatter,jdbcType=VARCHAR},
      </if>
      <if test="status != null">
        #{status,jdbcType=TINYINT},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    update qfd_sketch
    <set>
      <if test="coursename != null">
        courseName = #{coursename,jdbcType=VARCHAR},
      </if>
      <if test="coursereq != null">
        courseReq = #{coursereq,jdbcType=VARCHAR},
      </if>
      <if test="teaid != null">
        teaId = #{teaid,jdbcType=VARCHAR},
      </if>
      <if test="teaname != null">
        teaName = #{teaname,jdbcType=VARCHAR},
      </if>
      <if test="stuid != null">
        stuId = #{stuid,jdbcType=VARCHAR},
      </if>
      <if test="stuname != null">
        stuName = #{stuname,jdbcType=VARCHAR},
      </if>
      <if test="stuphone != null">
        stuPhone = #{stuphone,jdbcType=VARCHAR},
      </if>
      <if test="textbookid != null">
        textbookId = #{textbookid,jdbcType=BIGINT},
      </if>
      <if test="creator != null">
        creator = #{creator,jdbcType=VARCHAR},
      </if>
      <if test="lastmodifier != null">
        lastModifier = #{lastmodifier,jdbcType=VARCHAR},
      </if>
      <if test="countdate != null">
        countDate = #{countdate,jdbcType=INTEGER},
      </if>
      <if test="counttime != null">
        countTime = #{counttime,jdbcType=INTEGER},
      </if>
      <if test="countstu != null">
        countStu = #{countstu,jdbcType=INTEGER},
      </if>
      <if test="sketchtype != null">
        sketchType = #{sketchtype,jdbcType=INTEGER},
      </if>
      <if test="coursestyle != null">
        courseStyle = #{coursestyle,jdbcType=INTEGER},
      </if>
      <if test="classtype != null">
        classType = #{classtype,jdbcType=INTEGER},
      </if>
      <if test="process != null">
        process = #{process,jdbcType=INTEGER},
      </if>
      <if test="coursestatus != null">
        courseStatus = #{coursestatus,jdbcType=INTEGER},
      </if>
      <if test="pay != null">
        pay = #{pay,jdbcType=VARCHAR},
      </if>
      <if test="perpay != null">
        perPay = #{perpay,jdbcType=VARCHAR},
      </if>
      <if test="couponpay != null">
        couponPay = #{couponpay,jdbcType=VARCHAR},
      </if>
      <if test="originalpay != null">
        originalPay = #{originalpay,jdbcType=VARCHAR},
      </if>
      <if test="couponrule != null">
        couponRule = #{couponrule,jdbcType=INTEGER},
      </if>
      <if test="begindate != null">
        beginDate = #{begindate,jdbcType=BIGINT},
      </if>
      <if test="enddate != null">
        endDate = #{enddate,jdbcType=BIGINT},
      </if>
      <if test="coursenum != null">
        courseNum = #{coursenum,jdbcType=INTEGER},
      </if>
      <if test="hasnum != null">
        hasNum = #{hasnum,jdbcType=INTEGER},
      </if>
      <if test="cancelnum != null">
        cancelNum = #{cancelnum,jdbcType=INTEGER},
      </if>
      <if test="coursenuminput != null">
        courseNumInput = #{coursenuminput,jdbcType=INTEGER},
      </if>
      <if test="ordernum != null">
        orderNum = #{ordernum,jdbcType=INTEGER},
      </if>
      <if test="fav != null">
        fav = #{fav,jdbcType=BIGINT},
      </if>
      <if test="viplevel != null">
        vipLevel = #{viplevel,jdbcType=INTEGER},
      </if>
      <if test="cancelreason != null">
        cancelReason = #{cancelreason,jdbcType=INTEGER},
      </if>
      <if test="createdate != null">
        createDate = #{createdate,jdbcType=BIGINT},
      </if>
      <if test="lastmoddate != null">
        lastModDate = #{lastmoddate,jdbcType=BIGINT},
      </if>
      <if test="formatter != null">
        formatter = #{formatter,jdbcType=VARCHAR},
      </if>
      <if test="status != null">
        status = #{status,jdbcType=TINYINT},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    update qfd_sketch
    set courseName = #{coursename,jdbcType=VARCHAR},
      courseReq = #{coursereq,jdbcType=VARCHAR},
      teaId = #{teaid,jdbcType=VARCHAR},
      teaName = #{teaname,jdbcType=VARCHAR},
      stuId = #{stuid,jdbcType=VARCHAR},
      stuName = #{stuname,jdbcType=VARCHAR},
      stuPhone = #{stuphone,jdbcType=VARCHAR},
      textbookId = #{textbookid,jdbcType=BIGINT},
      creator = #{creator,jdbcType=VARCHAR},
      lastModifier = #{lastmodifier,jdbcType=VARCHAR},
      countDate = #{countdate,jdbcType=INTEGER},
      countTime = #{counttime,jdbcType=INTEGER},
      countStu = #{countstu,jdbcType=INTEGER},
      sketchType = #{sketchtype,jdbcType=INTEGER},
      courseStyle = #{coursestyle,jdbcType=INTEGER},
      classType = #{classtype,jdbcType=INTEGER},
      process = #{process,jdbcType=INTEGER},
      courseStatus = #{coursestatus,jdbcType=INTEGER},
      pay = #{pay,jdbcType=VARCHAR},
      perPay = #{perpay,jdbcType=VARCHAR},
      couponPay = #{couponpay,jdbcType=VARCHAR},
      originalPay = #{originalpay,jdbcType=VARCHAR},
      couponRule = #{couponrule,jdbcType=INTEGER},
      beginDate = #{begindate,jdbcType=BIGINT},
      endDate = #{enddate,jdbcType=BIGINT},
      courseNum = #{coursenum,jdbcType=INTEGER},
      hasNum = #{hasnum,jdbcType=INTEGER},
      cancelNum = #{cancelnum,jdbcType=INTEGER},
      courseNumInput = #{coursenuminput,jdbcType=INTEGER},
      orderNum = #{ordernum,jdbcType=INTEGER},
      fav = #{fav,jdbcType=BIGINT},
      vipLevel = #{viplevel,jdbcType=INTEGER},
      cancelReason = #{cancelreason,jdbcType=INTEGER},
      createDate = #{createdate,jdbcType=BIGINT},
      lastModDate = #{lastmoddate,jdbcType=BIGINT},
      formatter = #{formatter,jdbcType=VARCHAR},
      status = #{status,jdbcType=TINYINT}
    where id = #{id,jdbcType=BIGINT}
  </update>
</mapper>

2.根据已知问题,我们先处理一下问题吧,保留insert,update,delete方法作为示例,顺便给他们增加隔行的格式化

先看看XMLMapperGenerator.java这个类的getSqlMapElement()方法,可以看到很多addxxx方法,这里就是拼接sql xml文件的逻辑,我们只保留必须的方法

protected XmlElement getSqlMapElement() {
        FullyQualifiedTable table = introspectedTable.getFullyQualifiedTable();
        progressCallback.startTask(getString(
                "Progress.12", table.toString())); //$NON-NLS-1$
        XmlElement answer = new XmlElement("mapper"); //$NON-NLS-1$
        String namespace = introspectedTable.getMyBatis3SqlMapNamespace();
        answer.addAttribute(new Attribute("namespace", //$NON-NLS-1$
                namespace));

        context.getCommentGenerator().addRootComment(answer);

        addResultMapWithoutBLOBsElement(answer);
        addResultMapWithBLOBsElement(answer);
        addExampleWhereClauseElement(answer);
        addMyBatis3UpdateByExampleWhereClauseElement(answer);
        addBaseColumnListElement(answer);
        addBlobColumnListElement(answer);
        addSelectByExampleWithBLOBsElement(answer);
        addSelectByExampleWithoutBLOBsElement(answer);
        addSelectByPrimaryKeyElement(answer);
        addDeleteByPrimaryKeyElement(answer);
        addDeleteByExampleElement(answer);
        addInsertElement(answer);
        addInsertSelectiveElement(answer);
        addCountByExampleElement(answer);
        addUpdateByExampleSelectiveElement(answer);
        addUpdateByExampleWithBLOBsElement(answer);
        addUpdateByExampleWithoutBLOBsElement(answer);
        addUpdateByPrimaryKeySelectiveElement(answer);
        addUpdateByPrimaryKeyWithBLOBsElement(answer);
        addUpdateByPrimaryKeyWithoutBLOBsElement(answer);
        
        return answer;
    }

修改后的方法

protected XmlElement getSqlMapElement() {
        FullyQualifiedTable table = introspectedTable.getFullyQualifiedTable();
        progressCallback.startTask(getString(
                "Progress.12", table.toString())); //$NON-NLS-1$
        XmlElement answer = new XmlElement("mapper"); //$NON-NLS-1$
        String namespace = introspectedTable.getMyBatis3SqlMapNamespace();
        answer.addAttribute(new Attribute("namespace", //$NON-NLS-1$
                namespace));

        context.getCommentGenerator().addRootComment(answer);

//        addResultMapWithoutBLOBsElement(answer);
//        addResultMapWithBLOBsElement(answer);
//        addExampleWhereClauseElement(answer);
//        addMyBatis3UpdateByExampleWhereClauseElement(answer);
//        addBaseColumnListElement(answer);
//        addBlobColumnListElement(answer);
//        addSelectByExampleWithBLOBsElement(answer);
//        addSelectByExampleWithoutBLOBsElement(answer);
//        addSelectByPrimaryKeyElement(answer);
//        addDeleteByPrimaryKeyElement(answer);
//        addDeleteByExampleElement(answer);
//        addInsertElement(answer);
//        addInsertSelectiveElement(answer);
//        addCountByExampleElement(answer);
//        addUpdateByExampleSelectiveElement(answer);
//        addUpdateByExampleWithBLOBsElement(answer);
//        addUpdateByExampleWithoutBLOBsElement(answer);
//        addUpdateByPrimaryKeySelectiveElement(answer);
//        addUpdateByPrimaryKeyWithBLOBsElement(answer);
//        addUpdateByPrimaryKeyWithoutBLOBsElement(answer);
        
        addResultMapWithoutBLOBsElement(answer);
        addBaseColumnListElement(answer);
        addInsertSelectiveElement(answer);
        addUpdateByPrimaryKeySelectiveElement(answer);
        addDeleteByPrimaryKeyElement(answer);

        return answer;
    }

3.修改这个方法后,我们运行下生成文件看看效果

<?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.test.dao.QfdSketchMapper">
  <resultMap id="BaseResultMap" type="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="courseName" jdbcType="VARCHAR" property="coursename" />
    <result column="courseReq" jdbcType="VARCHAR" property="coursereq" />
    <result column="teaId" jdbcType="VARCHAR" property="teaid" />
    <result column="teaName" jdbcType="VARCHAR" property="teaname" />
    <result column="stuId" jdbcType="VARCHAR" property="stuid" />
    <result column="stuName" jdbcType="VARCHAR" property="stuname" />
    <result column="stuPhone" jdbcType="VARCHAR" property="stuphone" />
    <result column="textbookId" jdbcType="BIGINT" property="textbookid" />
    <result column="creator" jdbcType="VARCHAR" property="creator" />
    <result column="lastModifier" jdbcType="VARCHAR" property="lastmodifier" />
    <result column="countDate" jdbcType="INTEGER" property="countdate" />
    <result column="countTime" jdbcType="INTEGER" property="counttime" />
    <result column="countStu" jdbcType="INTEGER" property="countstu" />
    <result column="sketchType" jdbcType="INTEGER" property="sketchtype" />
    <result column="courseStyle" jdbcType="INTEGER" property="coursestyle" />
    <result column="classType" jdbcType="INTEGER" property="classtype" />
    <result column="process" jdbcType="INTEGER" property="process" />
    <result column="courseStatus" jdbcType="INTEGER" property="coursestatus" />
    <result column="pay" jdbcType="VARCHAR" property="pay" />
    <result column="perPay" jdbcType="VARCHAR" property="perpay" />
    <result column="couponPay" jdbcType="VARCHAR" property="couponpay" />
    <result column="originalPay" jdbcType="VARCHAR" property="originalpay" />
    <result column="couponRule" jdbcType="INTEGER" property="couponrule" />
    <result column="beginDate" jdbcType="BIGINT" property="begindate" />
    <result column="endDate" jdbcType="BIGINT" property="enddate" />
    <result column="courseNum" jdbcType="INTEGER" property="coursenum" />
    <result column="hasNum" jdbcType="INTEGER" property="hasnum" />
    <result column="cancelNum" jdbcType="INTEGER" property="cancelnum" />
    <result column="courseNumInput" jdbcType="INTEGER" property="coursenuminput" />
    <result column="orderNum" jdbcType="INTEGER" property="ordernum" />
    <result column="fav" jdbcType="BIGINT" property="fav" />
    <result column="vipLevel" jdbcType="INTEGER" property="viplevel" />
    <result column="cancelReason" jdbcType="INTEGER" property="cancelreason" />
    <result column="createDate" jdbcType="BIGINT" property="createdate" />
    <result column="lastModDate" jdbcType="BIGINT" property="lastmoddate" />
    <result column="formatter" jdbcType="VARCHAR" property="formatter" />
    <result column="status" jdbcType="TINYINT" property="status" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    id, courseName, courseReq, teaId, teaName, stuId, stuName, stuPhone, textbookId, 
    creator, lastModifier, countDate, countTime, countStu, sketchType, courseStyle, classType, 
    process, courseStatus, pay, perPay, couponPay, originalPay, couponRule, beginDate, 
    endDate, courseNum, hasNum, cancelNum, courseNumInput, orderNum, fav, vipLevel, cancelReason, 
    createDate, lastModDate, formatter, status
  </sql>
  <insert id="insertSelective" parameterType="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    insert into qfd_sketch
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="coursename != null">
        courseName,
      </if>
      <if test="coursereq != null">
        courseReq,
      </if>
      <if test="teaid != null">
        teaId,
      </if>
      <if test="teaname != null">
        teaName,
      </if>
      <if test="stuid != null">
        stuId,
      </if>
      <if test="stuname != null">
        stuName,
      </if>
      <if test="stuphone != null">
        stuPhone,
      </if>
      <if test="textbookid != null">
        textbookId,
      </if>
      <if test="creator != null">
        creator,
      </if>
      <if test="lastmodifier != null">
        lastModifier,
      </if>
      <if test="countdate != null">
        countDate,
      </if>
      <if test="counttime != null">
        countTime,
      </if>
      <if test="countstu != null">
        countStu,
      </if>
      <if test="sketchtype != null">
        sketchType,
      </if>
      <if test="coursestyle != null">
        courseStyle,
      </if>
      <if test="classtype != null">
        classType,
      </if>
      <if test="process != null">
        process,
      </if>
      <if test="coursestatus != null">
        courseStatus,
      </if>
      <if test="pay != null">
        pay,
      </if>
      <if test="perpay != null">
        perPay,
      </if>
      <if test="couponpay != null">
        couponPay,
      </if>
      <if test="originalpay != null">
        originalPay,
      </if>
      <if test="couponrule != null">
        couponRule,
      </if>
      <if test="begindate != null">
        beginDate,
      </if>
      <if test="enddate != null">
        endDate,
      </if>
      <if test="coursenum != null">
        courseNum,
      </if>
      <if test="hasnum != null">
        hasNum,
      </if>
      <if test="cancelnum != null">
        cancelNum,
      </if>
      <if test="coursenuminput != null">
        courseNumInput,
      </if>
      <if test="ordernum != null">
        orderNum,
      </if>
      <if test="fav != null">
        fav,
      </if>
      <if test="viplevel != null">
        vipLevel,
      </if>
      <if test="cancelreason != null">
        cancelReason,
      </if>
      <if test="createdate != null">
        createDate,
      </if>
      <if test="lastmoddate != null">
        lastModDate,
      </if>
      <if test="formatter != null">
        formatter,
      </if>
      <if test="status != null">
        status,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="coursename != null">
        #{coursename,jdbcType=VARCHAR},
      </if>
      <if test="coursereq != null">
        #{coursereq,jdbcType=VARCHAR},
      </if>
      <if test="teaid != null">
        #{teaid,jdbcType=VARCHAR},
      </if>
      <if test="teaname != null">
        #{teaname,jdbcType=VARCHAR},
      </if>
      <if test="stuid != null">
        #{stuid,jdbcType=VARCHAR},
      </if>
      <if test="stuname != null">
        #{stuname,jdbcType=VARCHAR},
      </if>
      <if test="stuphone != null">
        #{stuphone,jdbcType=VARCHAR},
      </if>
      <if test="textbookid != null">
        #{textbookid,jdbcType=BIGINT},
      </if>
      <if test="creator != null">
        #{creator,jdbcType=VARCHAR},
      </if>
      <if test="lastmodifier != null">
        #{lastmodifier,jdbcType=VARCHAR},
      </if>
      <if test="countdate != null">
        #{countdate,jdbcType=INTEGER},
      </if>
      <if test="counttime != null">
        #{counttime,jdbcType=INTEGER},
      </if>
      <if test="countstu != null">
        #{countstu,jdbcType=INTEGER},
      </if>
      <if test="sketchtype != null">
        #{sketchtype,jdbcType=INTEGER},
      </if>
      <if test="coursestyle != null">
        #{coursestyle,jdbcType=INTEGER},
      </if>
      <if test="classtype != null">
        #{classtype,jdbcType=INTEGER},
      </if>
      <if test="process != null">
        #{process,jdbcType=INTEGER},
      </if>
      <if test="coursestatus != null">
        #{coursestatus,jdbcType=INTEGER},
      </if>
      <if test="pay != null">
        #{pay,jdbcType=VARCHAR},
      </if>
      <if test="perpay != null">
        #{perpay,jdbcType=VARCHAR},
      </if>
      <if test="couponpay != null">
        #{couponpay,jdbcType=VARCHAR},
      </if>
      <if test="originalpay != null">
        #{originalpay,jdbcType=VARCHAR},
      </if>
      <if test="couponrule != null">
        #{couponrule,jdbcType=INTEGER},
      </if>
      <if test="begindate != null">
        #{begindate,jdbcType=BIGINT},
      </if>
      <if test="enddate != null">
        #{enddate,jdbcType=BIGINT},
      </if>
      <if test="coursenum != null">
        #{coursenum,jdbcType=INTEGER},
      </if>
      <if test="hasnum != null">
        #{hasnum,jdbcType=INTEGER},
      </if>
      <if test="cancelnum != null">
        #{cancelnum,jdbcType=INTEGER},
      </if>
      <if test="coursenuminput != null">
        #{coursenuminput,jdbcType=INTEGER},
      </if>
      <if test="ordernum != null">
        #{ordernum,jdbcType=INTEGER},
      </if>
      <if test="fav != null">
        #{fav,jdbcType=BIGINT},
      </if>
      <if test="viplevel != null">
        #{viplevel,jdbcType=INTEGER},
      </if>
      <if test="cancelreason != null">
        #{cancelreason,jdbcType=INTEGER},
      </if>
      <if test="createdate != null">
        #{createdate,jdbcType=BIGINT},
      </if>
      <if test="lastmoddate != null">
        #{lastmoddate,jdbcType=BIGINT},
      </if>
      <if test="formatter != null">
        #{formatter,jdbcType=VARCHAR},
      </if>
      <if test="status != null">
        #{status,jdbcType=TINYINT},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.test.domain.QfdSketch">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    update qfd_sketch
    <set>
      <if test="coursename != null">
        courseName = #{coursename,jdbcType=VARCHAR},
      </if>
      <if test="coursereq != null">
        courseReq = #{coursereq,jdbcType=VARCHAR},
      </if>
      <if test="teaid != null">
        teaId = #{teaid,jdbcType=VARCHAR},
      </if>
      <if test="teaname != null">
        teaName = #{teaname,jdbcType=VARCHAR},
      </if>
      <if test="stuid != null">
        stuId = #{stuid,jdbcType=VARCHAR},
      </if>
      <if test="stuname != null">
        stuName = #{stuname,jdbcType=VARCHAR},
      </if>
      <if test="stuphone != null">
        stuPhone = #{stuphone,jdbcType=VARCHAR},
      </if>
      <if test="textbookid != null">
        textbookId = #{textbookid,jdbcType=BIGINT},
      </if>
      <if test="creator != null">
        creator = #{creator,jdbcType=VARCHAR},
      </if>
      <if test="lastmodifier != null">
        lastModifier = #{lastmodifier,jdbcType=VARCHAR},
      </if>
      <if test="countdate != null">
        countDate = #{countdate,jdbcType=INTEGER},
      </if>
      <if test="counttime != null">
        countTime = #{counttime,jdbcType=INTEGER},
      </if>
      <if test="countstu != null">
        countStu = #{countstu,jdbcType=INTEGER},
      </if>
      <if test="sketchtype != null">
        sketchType = #{sketchtype,jdbcType=INTEGER},
      </if>
      <if test="coursestyle != null">
        courseStyle = #{coursestyle,jdbcType=INTEGER},
      </if>
      <if test="classtype != null">
        classType = #{classtype,jdbcType=INTEGER},
      </if>
      <if test="process != null">
        process = #{process,jdbcType=INTEGER},
      </if>
      <if test="coursestatus != null">
        courseStatus = #{coursestatus,jdbcType=INTEGER},
      </if>
      <if test="pay != null">
        pay = #{pay,jdbcType=VARCHAR},
      </if>
      <if test="perpay != null">
        perPay = #{perpay,jdbcType=VARCHAR},
      </if>
      <if test="couponpay != null">
        couponPay = #{couponpay,jdbcType=VARCHAR},
      </if>
      <if test="originalpay != null">
        originalPay = #{originalpay,jdbcType=VARCHAR},
      </if>
      <if test="couponrule != null">
        couponRule = #{couponrule,jdbcType=INTEGER},
      </if>
      <if test="begindate != null">
        beginDate = #{begindate,jdbcType=BIGINT},
      </if>
      <if test="enddate != null">
        endDate = #{enddate,jdbcType=BIGINT},
      </if>
      <if test="coursenum != null">
        courseNum = #{coursenum,jdbcType=INTEGER},
      </if>
      <if test="hasnum != null">
        hasNum = #{hasnum,jdbcType=INTEGER},
      </if>
      <if test="cancelnum != null">
        cancelNum = #{cancelnum,jdbcType=INTEGER},
      </if>
      <if test="coursenuminput != null">
        courseNumInput = #{coursenuminput,jdbcType=INTEGER},
      </if>
      <if test="ordernum != null">
        orderNum = #{ordernum,jdbcType=INTEGER},
      </if>
      <if test="fav != null">
        fav = #{fav,jdbcType=BIGINT},
      </if>
      <if test="viplevel != null">
        vipLevel = #{viplevel,jdbcType=INTEGER},
      </if>
      <if test="cancelreason != null">
        cancelReason = #{cancelreason,jdbcType=INTEGER},
      </if>
      <if test="createdate != null">
        createDate = #{createdate,jdbcType=BIGINT},
      </if>
      <if test="lastmoddate != null">
        lastModDate = #{lastmoddate,jdbcType=BIGINT},
      </if>
      <if test="formatter != null">
        formatter = #{formatter,jdbcType=VARCHAR},
      </if>
      <if test="status != null">
        status = #{status,jdbcType=TINYINT},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    delete from qfd_sketch
    where id = #{id,jdbcType=BIGINT}
  </delete>
</mapper>


4.看到上面的文件后发现已经达到我们一个目的了,把多余的方法给去掉,但是格式不够好看,我们来完成下面一个目标,增加sql节点隔行以及修改sql语句缩进格式

继续看XMLMapperGenerator.java类的initializeAndExecuteGenerator()方法

protected void initializeAndExecuteGenerator(
            AbstractXmlElementGenerator elementGenerator,
            XmlElement parentElement) {
        elementGenerator.setContext(context);
        elementGenerator.setIntrospectedTable(introspectedTable);
        elementGenerator.setProgressCallback(progressCallback);
        elementGenerator.setWarnings(warnings);
        elementGenerator.addElements(parentElement);
    }

修改后的方法

protected void initializeAndExecuteGenerator(
            AbstractXmlElementGenerator elementGenerator,
            XmlElement parentElement) {
        elementGenerator.setContext(context);
        elementGenerator.setIntrospectedTable(introspectedTable);
        elementGenerator.setProgressCallback(progressCallback);
        elementGenerator.setWarnings(warnings);
        parentElement.addElement(new TextElement("")); // 增加一行空白的隔行
        elementGenerator.addElements(parentElement);
    }


打开OutputUtilities.java方法看

public static void xmlIndent(StringBuilder sb, int indentLevel) {
        for (int i = 0; i < indentLevel; i++) {
            sb.append("  "); //$NON-NLS-1$
        }
    }

把两个空格符变成4个空格符

public static void xmlIndent(StringBuilder sb, int indentLevel) {
        for (int i = 0; i < indentLevel; i++) {
        	// sb.append("  "); //$NON-NLS-1$
        	sb.append("    "); // 4个空格符
        }
    }


5.修改方法后我们重新生成下xml文件看看效果

<?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.test.dao.QfdSketchMapper">
    
    <resultMap id="BaseResultMap" type="com.test.domain.QfdSketch">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        <id column="id" jdbcType="BIGINT" property="id" />
        <result column="courseName" jdbcType="VARCHAR" property="coursename" />
        <result column="courseReq" jdbcType="VARCHAR" property="coursereq" />
        <result column="teaId" jdbcType="VARCHAR" property="teaid" />
        <result column="teaName" jdbcType="VARCHAR" property="teaname" />
        <result column="stuId" jdbcType="VARCHAR" property="stuid" />
        <result column="stuName" jdbcType="VARCHAR" property="stuname" />
        <result column="stuPhone" jdbcType="VARCHAR" property="stuphone" />
        <result column="textbookId" jdbcType="BIGINT" property="textbookid" />
        <result column="creator" jdbcType="VARCHAR" property="creator" />
        <result column="lastModifier" jdbcType="VARCHAR" property="lastmodifier" />
        <result column="countDate" jdbcType="INTEGER" property="countdate" />
        <result column="countTime" jdbcType="INTEGER" property="counttime" />
        <result column="countStu" jdbcType="INTEGER" property="countstu" />
        <result column="sketchType" jdbcType="INTEGER" property="sketchtype" />
        <result column="courseStyle" jdbcType="INTEGER" property="coursestyle" />
        <result column="classType" jdbcType="INTEGER" property="classtype" />
        <result column="process" jdbcType="INTEGER" property="process" />
        <result column="courseStatus" jdbcType="INTEGER" property="coursestatus" />
        <result column="pay" jdbcType="VARCHAR" property="pay" />
        <result column="perPay" jdbcType="VARCHAR" property="perpay" />
        <result column="couponPay" jdbcType="VARCHAR" property="couponpay" />
        <result column="originalPay" jdbcType="VARCHAR" property="originalpay" />
        <result column="couponRule" jdbcType="INTEGER" property="couponrule" />
        <result column="beginDate" jdbcType="BIGINT" property="begindate" />
        <result column="endDate" jdbcType="BIGINT" property="enddate" />
        <result column="courseNum" jdbcType="INTEGER" property="coursenum" />
        <result column="hasNum" jdbcType="INTEGER" property="hasnum" />
        <result column="cancelNum" jdbcType="INTEGER" property="cancelnum" />
        <result column="courseNumInput" jdbcType="INTEGER" property="coursenuminput" />
        <result column="orderNum" jdbcType="INTEGER" property="ordernum" />
        <result column="fav" jdbcType="BIGINT" property="fav" />
        <result column="vipLevel" jdbcType="INTEGER" property="viplevel" />
        <result column="cancelReason" jdbcType="INTEGER" property="cancelreason" />
        <result column="createDate" jdbcType="BIGINT" property="createdate" />
        <result column="lastModDate" jdbcType="BIGINT" property="lastmoddate" />
        <result column="formatter" jdbcType="VARCHAR" property="formatter" />
        <result column="status" jdbcType="TINYINT" property="status" />
    </resultMap>
    
    <sql id="Base_Column_List">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        id, courseName, courseReq, teaId, teaName, stuId, stuName, stuPhone, textbookId, 
        creator, lastModifier, countDate, countTime, countStu, sketchType, courseStyle, classType, 
        process, courseStatus, pay, perPay, couponPay, originalPay, couponRule, beginDate, 
        endDate, courseNum, hasNum, cancelNum, courseNumInput, orderNum, fav, vipLevel, cancelReason, 
        createDate, lastModDate, formatter, status
    </sql>
    
    <insert id="insertSelective" parameterType="com.test.domain.QfdSketch">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        insert into qfd_sketch
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="coursename != null">
                courseName,
            </if>
            <if test="coursereq != null">
                courseReq,
            </if>
            <if test="teaid != null">
                teaId,
            </if>
            <if test="teaname != null">
                teaName,
            </if>
            <if test="stuid != null">
                stuId,
            </if>
            <if test="stuname != null">
                stuName,
            </if>
            <if test="stuphone != null">
                stuPhone,
            </if>
            <if test="textbookid != null">
                textbookId,
            </if>
            <if test="creator != null">
                creator,
            </if>
            <if test="lastmodifier != null">
                lastModifier,
            </if>
            <if test="countdate != null">
                countDate,
            </if>
            <if test="counttime != null">
                countTime,
            </if>
            <if test="countstu != null">
                countStu,
            </if>
            <if test="sketchtype != null">
                sketchType,
            </if>
            <if test="coursestyle != null">
                courseStyle,
            </if>
            <if test="classtype != null">
                classType,
            </if>
            <if test="process != null">
                process,
            </if>
            <if test="coursestatus != null">
                courseStatus,
            </if>
            <if test="pay != null">
                pay,
            </if>
            <if test="perpay != null">
                perPay,
            </if>
            <if test="couponpay != null">
                couponPay,
            </if>
            <if test="originalpay != null">
                originalPay,
            </if>
            <if test="couponrule != null">
                couponRule,
            </if>
            <if test="begindate != null">
                beginDate,
            </if>
            <if test="enddate != null">
                endDate,
            </if>
            <if test="coursenum != null">
                courseNum,
            </if>
            <if test="hasnum != null">
                hasNum,
            </if>
            <if test="cancelnum != null">
                cancelNum,
            </if>
            <if test="coursenuminput != null">
                courseNumInput,
            </if>
            <if test="ordernum != null">
                orderNum,
            </if>
            <if test="fav != null">
                fav,
            </if>
            <if test="viplevel != null">
                vipLevel,
            </if>
            <if test="cancelreason != null">
                cancelReason,
            </if>
            <if test="createdate != null">
                createDate,
            </if>
            <if test="lastmoddate != null">
                lastModDate,
            </if>
            <if test="formatter != null">
                formatter,
            </if>
            <if test="status != null">
                status,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="coursename != null">
                #{coursename,jdbcType=VARCHAR},
            </if>
            <if test="coursereq != null">
                #{coursereq,jdbcType=VARCHAR},
            </if>
            <if test="teaid != null">
                #{teaid,jdbcType=VARCHAR},
            </if>
            <if test="teaname != null">
                #{teaname,jdbcType=VARCHAR},
            </if>
            <if test="stuid != null">
                #{stuid,jdbcType=VARCHAR},
            </if>
            <if test="stuname != null">
                #{stuname,jdbcType=VARCHAR},
            </if>
            <if test="stuphone != null">
                #{stuphone,jdbcType=VARCHAR},
            </if>
            <if test="textbookid != null">
                #{textbookid,jdbcType=BIGINT},
            </if>
            <if test="creator != null">
                #{creator,jdbcType=VARCHAR},
            </if>
            <if test="lastmodifier != null">
                #{lastmodifier,jdbcType=VARCHAR},
            </if>
            <if test="countdate != null">
                #{countdate,jdbcType=INTEGER},
            </if>
            <if test="counttime != null">
                #{counttime,jdbcType=INTEGER},
            </if>
            <if test="countstu != null">
                #{countstu,jdbcType=INTEGER},
            </if>
            <if test="sketchtype != null">
                #{sketchtype,jdbcType=INTEGER},
            </if>
            <if test="coursestyle != null">
                #{coursestyle,jdbcType=INTEGER},
            </if>
            <if test="classtype != null">
                #{classtype,jdbcType=INTEGER},
            </if>
            <if test="process != null">
                #{process,jdbcType=INTEGER},
            </if>
            <if test="coursestatus != null">
                #{coursestatus,jdbcType=INTEGER},
            </if>
            <if test="pay != null">
                #{pay,jdbcType=VARCHAR},
            </if>
            <if test="perpay != null">
                #{perpay,jdbcType=VARCHAR},
            </if>
            <if test="couponpay != null">
                #{couponpay,jdbcType=VARCHAR},
            </if>
            <if test="originalpay != null">
                #{originalpay,jdbcType=VARCHAR},
            </if>
            <if test="couponrule != null">
                #{couponrule,jdbcType=INTEGER},
            </if>
            <if test="begindate != null">
                #{begindate,jdbcType=BIGINT},
            </if>
            <if test="enddate != null">
                #{enddate,jdbcType=BIGINT},
            </if>
            <if test="coursenum != null">
                #{coursenum,jdbcType=INTEGER},
            </if>
            <if test="hasnum != null">
                #{hasnum,jdbcType=INTEGER},
            </if>
            <if test="cancelnum != null">
                #{cancelnum,jdbcType=INTEGER},
            </if>
            <if test="coursenuminput != null">
                #{coursenuminput,jdbcType=INTEGER},
            </if>
            <if test="ordernum != null">
                #{ordernum,jdbcType=INTEGER},
            </if>
            <if test="fav != null">
                #{fav,jdbcType=BIGINT},
            </if>
            <if test="viplevel != null">
                #{viplevel,jdbcType=INTEGER},
            </if>
            <if test="cancelreason != null">
                #{cancelreason,jdbcType=INTEGER},
            </if>
            <if test="createdate != null">
                #{createdate,jdbcType=BIGINT},
            </if>
            <if test="lastmoddate != null">
                #{lastmoddate,jdbcType=BIGINT},
            </if>
            <if test="formatter != null">
                #{formatter,jdbcType=VARCHAR},
            </if>
            <if test="status != null">
                #{status,jdbcType=TINYINT},
            </if>
        </trim>
    </insert>
    
    <update id="updateByPrimaryKeySelective" parameterType="com.test.domain.QfdSketch">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        update qfd_sketch
        <set>
            <if test="coursename != null">
                courseName = #{coursename,jdbcType=VARCHAR},
            </if>
            <if test="coursereq != null">
                courseReq = #{coursereq,jdbcType=VARCHAR},
            </if>
            <if test="teaid != null">
                teaId = #{teaid,jdbcType=VARCHAR},
            </if>
            <if test="teaname != null">
                teaName = #{teaname,jdbcType=VARCHAR},
            </if>
            <if test="stuid != null">
                stuId = #{stuid,jdbcType=VARCHAR},
            </if>
            <if test="stuname != null">
                stuName = #{stuname,jdbcType=VARCHAR},
            </if>
            <if test="stuphone != null">
                stuPhone = #{stuphone,jdbcType=VARCHAR},
            </if>
            <if test="textbookid != null">
                textbookId = #{textbookid,jdbcType=BIGINT},
            </if>
            <if test="creator != null">
                creator = #{creator,jdbcType=VARCHAR},
            </if>
            <if test="lastmodifier != null">
                lastModifier = #{lastmodifier,jdbcType=VARCHAR},
            </if>
            <if test="countdate != null">
                countDate = #{countdate,jdbcType=INTEGER},
            </if>
            <if test="counttime != null">
                countTime = #{counttime,jdbcType=INTEGER},
            </if>
            <if test="countstu != null">
                countStu = #{countstu,jdbcType=INTEGER},
            </if>
            <if test="sketchtype != null">
                sketchType = #{sketchtype,jdbcType=INTEGER},
            </if>
            <if test="coursestyle != null">
                courseStyle = #{coursestyle,jdbcType=INTEGER},
            </if>
            <if test="classtype != null">
                classType = #{classtype,jdbcType=INTEGER},
            </if>
            <if test="process != null">
                process = #{process,jdbcType=INTEGER},
            </if>
            <if test="coursestatus != null">
                courseStatus = #{coursestatus,jdbcType=INTEGER},
            </if>
            <if test="pay != null">
                pay = #{pay,jdbcType=VARCHAR},
            </if>
            <if test="perpay != null">
                perPay = #{perpay,jdbcType=VARCHAR},
            </if>
            <if test="couponpay != null">
                couponPay = #{couponpay,jdbcType=VARCHAR},
            </if>
            <if test="originalpay != null">
                originalPay = #{originalpay,jdbcType=VARCHAR},
            </if>
            <if test="couponrule != null">
                couponRule = #{couponrule,jdbcType=INTEGER},
            </if>
            <if test="begindate != null">
                beginDate = #{begindate,jdbcType=BIGINT},
            </if>
            <if test="enddate != null">
                endDate = #{enddate,jdbcType=BIGINT},
            </if>
            <if test="coursenum != null">
                courseNum = #{coursenum,jdbcType=INTEGER},
            </if>
            <if test="hasnum != null">
                hasNum = #{hasnum,jdbcType=INTEGER},
            </if>
            <if test="cancelnum != null">
                cancelNum = #{cancelnum,jdbcType=INTEGER},
            </if>
            <if test="coursenuminput != null">
                courseNumInput = #{coursenuminput,jdbcType=INTEGER},
            </if>
            <if test="ordernum != null">
                orderNum = #{ordernum,jdbcType=INTEGER},
            </if>
            <if test="fav != null">
                fav = #{fav,jdbcType=BIGINT},
            </if>
            <if test="viplevel != null">
                vipLevel = #{viplevel,jdbcType=INTEGER},
            </if>
            <if test="cancelreason != null">
                cancelReason = #{cancelreason,jdbcType=INTEGER},
            </if>
            <if test="createdate != null">
                createDate = #{createdate,jdbcType=BIGINT},
            </if>
            <if test="lastmoddate != null">
                lastModDate = #{lastmoddate,jdbcType=BIGINT},
            </if>
            <if test="formatter != null">
                formatter = #{formatter,jdbcType=VARCHAR},
            </if>
            <if test="status != null">
                status = #{status,jdbcType=TINYINT},
            </if>
        </set>
        where id = #{id,jdbcType=BIGINT}
    </update>
    
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        delete from qfd_sketch
        where id = #{id,jdbcType=BIGINT}
    </delete>
</mapper>


6.可以通过上面的修改后文件可以看到已经实现了我们的要求,但是sql id还是不满足我们的要求,应该改成纯粹的insert,update,delete

找到IntrospectedTable.java类的calculateXmlAttributes()方法,可以看到很多的setxxx方法带了具体的字符串参数,这个就是对应sql文件里面的sql id我们把对应的改改

protected void calculateXmlAttributes() {
        setIbatis2SqlMapPackage(calculateSqlMapPackage());
        setIbatis2SqlMapFileName(calculateIbatis2SqlMapFileName());
        setMyBatis3XmlMapperFileName(calculateMyBatis3XmlMapperFileName());
        setMyBatis3XmlMapperPackage(calculateSqlMapPackage());

        setIbatis2SqlMapNamespace(calculateIbatis2SqlMapNamespace());
        setMyBatis3FallbackSqlMapNamespace(calculateMyBatis3FallbackSqlMapNamespace());
        
        setSqlMapFullyQualifiedRuntimeTableName(calculateSqlMapFullyQualifiedRuntimeTableName());
        setSqlMapAliasedFullyQualifiedRuntimeTableName(calculateSqlMapAliasedFullyQualifiedRuntimeTableName());

        setCountByExampleStatementId("countByExample"); //$NON-NLS-1$
        setDeleteByExampleStatementId("deleteByExample"); //$NON-NLS-1$
        setDeleteByPrimaryKeyStatementId("deleteByPrimaryKey"); //$NON-NLS-1$
        setInsertStatementId("insert"); //$NON-NLS-1$
        setInsertSelectiveStatementId("insertSelective"); //$NON-NLS-1$
        setSelectAllStatementId("selectAll"); //$NON-NLS-1$
        setSelectByExampleStatementId("selectByExample"); //$NON-NLS-1$
        setSelectByExampleWithBLOBsStatementId("selectByExampleWithBLOBs"); //$NON-NLS-1$
        setSelectByPrimaryKeyStatementId("selectByPrimaryKey"); //$NON-NLS-1$
        setUpdateByExampleStatementId("updateByExample"); //$NON-NLS-1$
        setUpdateByExampleSelectiveStatementId("updateByExampleSelective"); //$NON-NLS-1$
        setUpdateByExampleWithBLOBsStatementId("updateByExampleWithBLOBs"); //$NON-NLS-1$
        setUpdateByPrimaryKeyStatementId("updateByPrimaryKey"); //$NON-NLS-1$
        setUpdateByPrimaryKeySelectiveStatementId("updateByPrimaryKeySelective"); //$NON-NLS-1$
        setUpdateByPrimaryKeyWithBLOBsStatementId("updateByPrimaryKeyWithBLOBs"); //$NON-NLS-1$
        setBaseResultMapId("BaseResultMap"); //$NON-NLS-1$
        setResultMapWithBLOBsId("ResultMapWithBLOBs"); //$NON-NLS-1$
        setExampleWhereClauseId("Example_Where_Clause"); //$NON-NLS-1$
        setBaseColumnListId("Base_Column_List"); //$NON-NLS-1$
        setBlobColumnListId("Blob_Column_List"); //$NON-NLS-1$
        setMyBatis3UpdateByExampleWhereClauseId("Update_By_Example_Where_Clause"); //$NON-NLS-1$
    }

修改后方法

protected void calculateXmlAttributes() {
        setIbatis2SqlMapPackage(calculateSqlMapPackage());
        setIbatis2SqlMapFileName(calculateIbatis2SqlMapFileName());
        setMyBatis3XmlMapperFileName(calculateMyBatis3XmlMapperFileName());
        setMyBatis3XmlMapperPackage(calculateSqlMapPackage());

        setIbatis2SqlMapNamespace(calculateIbatis2SqlMapNamespace());
        setMyBatis3FallbackSqlMapNamespace(calculateMyBatis3FallbackSqlMapNamespace());
        
        setSqlMapFullyQualifiedRuntimeTableName(calculateSqlMapFullyQualifiedRuntimeTableName());
        setSqlMapAliasedFullyQualifiedRuntimeTableName(calculateSqlMapAliasedFullyQualifiedRuntimeTableName());

        setCountByExampleStatementId("countByExample"); //$NON-NLS-1$
        setDeleteByExampleStatementId("deleteByExample"); //$NON-NLS-1$
        // setDeleteByPrimaryKeyStatementId("deleteByPrimaryKey"); //$NON-NLS-1$
        setDeleteByPrimaryKeyStatementId("delete"); // deleteByPrimaryKey改成delete
        setInsertStatementId("insert"); //$NON-NLS-1$
        // setInsertSelectiveStatementId("insertSelective"); //$NON-NLS-1$
        setInsertSelectiveStatementId("insert"); // insertSelective改成insert
        setSelectAllStatementId("selectAll"); //$NON-NLS-1$
        setSelectByExampleStatementId("selectByExample"); //$NON-NLS-1$
        setSelectByExampleWithBLOBsStatementId("selectByExampleWithBLOBs"); //$NON-NLS-1$
        setSelectByPrimaryKeyStatementId("selectByPrimaryKey"); //$NON-NLS-1$
        setUpdateByExampleStatementId("updateByExample"); //$NON-NLS-1$
        setUpdateByExampleSelectiveStatementId("updateByExampleSelective"); //$NON-NLS-1$
        setUpdateByExampleWithBLOBsStatementId("updateByExampleWithBLOBs"); //$NON-NLS-1$
        setUpdateByPrimaryKeyStatementId("updateByPrimaryKey"); //$NON-NLS-1$
        // setUpdateByPrimaryKeySelectiveStatementId("updateByPrimaryKeySelective"); //$NON-NLS-1$
        setUpdateByPrimaryKeySelectiveStatementId("update"); // updateByPrimaryKeySelective改成update
        setUpdateByPrimaryKeyWithBLOBsStatementId("updateByPrimaryKeyWithBLOBs"); //$NON-NLS-1$
        setBaseResultMapId("BaseResultMap"); //$NON-NLS-1$
        setResultMapWithBLOBsId("ResultMapWithBLOBs"); //$NON-NLS-1$
        setExampleWhereClauseId("Example_Where_Clause"); //$NON-NLS-1$
        setBaseColumnListId("Base_Column_List"); //$NON-NLS-1$
        setBlobColumnListId("Blob_Column_List"); //$NON-NLS-1$
        setMyBatis3UpdateByExampleWhereClauseId("Update_By_Example_Where_Clause"); //$NON-NLS-1$
    }

7.修改方法后我们再重新生成文件看看效果

<?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.test.dao.QfdSketchMapper">
    
    <resultMap id="BaseResultMap" type="com.test.domain.QfdSketch">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        <id column="id" jdbcType="BIGINT" property="id" />
        <result column="courseName" jdbcType="VARCHAR" property="coursename" />
        <result column="courseReq" jdbcType="VARCHAR" property="coursereq" />
        <result column="teaId" jdbcType="VARCHAR" property="teaid" />
        <result column="teaName" jdbcType="VARCHAR" property="teaname" />
        <result column="stuId" jdbcType="VARCHAR" property="stuid" />
        <result column="stuName" jdbcType="VARCHAR" property="stuname" />
        <result column="stuPhone" jdbcType="VARCHAR" property="stuphone" />
        <result column="textbookId" jdbcType="BIGINT" property="textbookid" />
        <result column="creator" jdbcType="VARCHAR" property="creator" />
        <result column="lastModifier" jdbcType="VARCHAR" property="lastmodifier" />
        <result column="countDate" jdbcType="INTEGER" property="countdate" />
        <result column="countTime" jdbcType="INTEGER" property="counttime" />
        <result column="countStu" jdbcType="INTEGER" property="countstu" />
        <result column="sketchType" jdbcType="INTEGER" property="sketchtype" />
        <result column="courseStyle" jdbcType="INTEGER" property="coursestyle" />
        <result column="classType" jdbcType="INTEGER" property="classtype" />
        <result column="process" jdbcType="INTEGER" property="process" />
        <result column="courseStatus" jdbcType="INTEGER" property="coursestatus" />
        <result column="pay" jdbcType="VARCHAR" property="pay" />
        <result column="perPay" jdbcType="VARCHAR" property="perpay" />
        <result column="couponPay" jdbcType="VARCHAR" property="couponpay" />
        <result column="originalPay" jdbcType="VARCHAR" property="originalpay" />
        <result column="couponRule" jdbcType="INTEGER" property="couponrule" />
        <result column="beginDate" jdbcType="BIGINT" property="begindate" />
        <result column="endDate" jdbcType="BIGINT" property="enddate" />
        <result column="courseNum" jdbcType="INTEGER" property="coursenum" />
        <result column="hasNum" jdbcType="INTEGER" property="hasnum" />
        <result column="cancelNum" jdbcType="INTEGER" property="cancelnum" />
        <result column="courseNumInput" jdbcType="INTEGER" property="coursenuminput" />
        <result column="orderNum" jdbcType="INTEGER" property="ordernum" />
        <result column="fav" jdbcType="BIGINT" property="fav" />
        <result column="vipLevel" jdbcType="INTEGER" property="viplevel" />
        <result column="cancelReason" jdbcType="INTEGER" property="cancelreason" />
        <result column="createDate" jdbcType="BIGINT" property="createdate" />
        <result column="lastModDate" jdbcType="BIGINT" property="lastmoddate" />
        <result column="formatter" jdbcType="VARCHAR" property="formatter" />
        <result column="status" jdbcType="TINYINT" property="status" />
    </resultMap>
    
    <sql id="Base_Column_List">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        id, courseName, courseReq, teaId, teaName, stuId, stuName, stuPhone, textbookId, 
        creator, lastModifier, countDate, countTime, countStu, sketchType, courseStyle, classType, 
        process, courseStatus, pay, perPay, couponPay, originalPay, couponRule, beginDate, 
        endDate, courseNum, hasNum, cancelNum, courseNumInput, orderNum, fav, vipLevel, cancelReason, 
        createDate, lastModDate, formatter, status
    </sql>
    
    <insert id="insert" parameterType="com.test.domain.QfdSketch">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        insert into qfd_sketch
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="coursename != null">
                courseName,
            </if>
            <if test="coursereq != null">
                courseReq,
            </if>
            <if test="teaid != null">
                teaId,
            </if>
            <if test="teaname != null">
                teaName,
            </if>
            <if test="stuid != null">
                stuId,
            </if>
            <if test="stuname != null">
                stuName,
            </if>
            <if test="stuphone != null">
                stuPhone,
            </if>
            <if test="textbookid != null">
                textbookId,
            </if>
            <if test="creator != null">
                creator,
            </if>
            <if test="lastmodifier != null">
                lastModifier,
            </if>
            <if test="countdate != null">
                countDate,
            </if>
            <if test="counttime != null">
                countTime,
            </if>
            <if test="countstu != null">
                countStu,
            </if>
            <if test="sketchtype != null">
                sketchType,
            </if>
            <if test="coursestyle != null">
                courseStyle,
            </if>
            <if test="classtype != null">
                classType,
            </if>
            <if test="process != null">
                process,
            </if>
            <if test="coursestatus != null">
                courseStatus,
            </if>
            <if test="pay != null">
                pay,
            </if>
            <if test="perpay != null">
                perPay,
            </if>
            <if test="couponpay != null">
                couponPay,
            </if>
            <if test="originalpay != null">
                originalPay,
            </if>
            <if test="couponrule != null">
                couponRule,
            </if>
            <if test="begindate != null">
                beginDate,
            </if>
            <if test="enddate != null">
                endDate,
            </if>
            <if test="coursenum != null">
                courseNum,
            </if>
            <if test="hasnum != null">
                hasNum,
            </if>
            <if test="cancelnum != null">
                cancelNum,
            </if>
            <if test="coursenuminput != null">
                courseNumInput,
            </if>
            <if test="ordernum != null">
                orderNum,
            </if>
            <if test="fav != null">
                fav,
            </if>
            <if test="viplevel != null">
                vipLevel,
            </if>
            <if test="cancelreason != null">
                cancelReason,
            </if>
            <if test="createdate != null">
                createDate,
            </if>
            <if test="lastmoddate != null">
                lastModDate,
            </if>
            <if test="formatter != null">
                formatter,
            </if>
            <if test="status != null">
                status,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="coursename != null">
                #{coursename,jdbcType=VARCHAR},
            </if>
            <if test="coursereq != null">
                #{coursereq,jdbcType=VARCHAR},
            </if>
            <if test="teaid != null">
                #{teaid,jdbcType=VARCHAR},
            </if>
            <if test="teaname != null">
                #{teaname,jdbcType=VARCHAR},
            </if>
            <if test="stuid != null">
                #{stuid,jdbcType=VARCHAR},
            </if>
            <if test="stuname != null">
                #{stuname,jdbcType=VARCHAR},
            </if>
            <if test="stuphone != null">
                #{stuphone,jdbcType=VARCHAR},
            </if>
            <if test="textbookid != null">
                #{textbookid,jdbcType=BIGINT},
            </if>
            <if test="creator != null">
                #{creator,jdbcType=VARCHAR},
            </if>
            <if test="lastmodifier != null">
                #{lastmodifier,jdbcType=VARCHAR},
            </if>
            <if test="countdate != null">
                #{countdate,jdbcType=INTEGER},
            </if>
            <if test="counttime != null">
                #{counttime,jdbcType=INTEGER},
            </if>
            <if test="countstu != null">
                #{countstu,jdbcType=INTEGER},
            </if>
            <if test="sketchtype != null">
                #{sketchtype,jdbcType=INTEGER},
            </if>
            <if test="coursestyle != null">
                #{coursestyle,jdbcType=INTEGER},
            </if>
            <if test="classtype != null">
                #{classtype,jdbcType=INTEGER},
            </if>
            <if test="process != null">
                #{process,jdbcType=INTEGER},
            </if>
            <if test="coursestatus != null">
                #{coursestatus,jdbcType=INTEGER},
            </if>
            <if test="pay != null">
                #{pay,jdbcType=VARCHAR},
            </if>
            <if test="perpay != null">
                #{perpay,jdbcType=VARCHAR},
            </if>
            <if test="couponpay != null">
                #{couponpay,jdbcType=VARCHAR},
            </if>
            <if test="originalpay != null">
                #{originalpay,jdbcType=VARCHAR},
            </if>
            <if test="couponrule != null">
                #{couponrule,jdbcType=INTEGER},
            </if>
            <if test="begindate != null">
                #{begindate,jdbcType=BIGINT},
            </if>
            <if test="enddate != null">
                #{enddate,jdbcType=BIGINT},
            </if>
            <if test="coursenum != null">
                #{coursenum,jdbcType=INTEGER},
            </if>
            <if test="hasnum != null">
                #{hasnum,jdbcType=INTEGER},
            </if>
            <if test="cancelnum != null">
                #{cancelnum,jdbcType=INTEGER},
            </if>
            <if test="coursenuminput != null">
                #{coursenuminput,jdbcType=INTEGER},
            </if>
            <if test="ordernum != null">
                #{ordernum,jdbcType=INTEGER},
            </if>
            <if test="fav != null">
                #{fav,jdbcType=BIGINT},
            </if>
            <if test="viplevel != null">
                #{viplevel,jdbcType=INTEGER},
            </if>
            <if test="cancelreason != null">
                #{cancelreason,jdbcType=INTEGER},
            </if>
            <if test="createdate != null">
                #{createdate,jdbcType=BIGINT},
            </if>
            <if test="lastmoddate != null">
                #{lastmoddate,jdbcType=BIGINT},
            </if>
            <if test="formatter != null">
                #{formatter,jdbcType=VARCHAR},
            </if>
            <if test="status != null">
                #{status,jdbcType=TINYINT},
            </if>
        </trim>
    </insert>
    
    <update id="update" parameterType="com.test.domain.QfdSketch">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        update qfd_sketch
        <set>
            <if test="coursename != null">
                courseName = #{coursename,jdbcType=VARCHAR},
            </if>
            <if test="coursereq != null">
                courseReq = #{coursereq,jdbcType=VARCHAR},
            </if>
            <if test="teaid != null">
                teaId = #{teaid,jdbcType=VARCHAR},
            </if>
            <if test="teaname != null">
                teaName = #{teaname,jdbcType=VARCHAR},
            </if>
            <if test="stuid != null">
                stuId = #{stuid,jdbcType=VARCHAR},
            </if>
            <if test="stuname != null">
                stuName = #{stuname,jdbcType=VARCHAR},
            </if>
            <if test="stuphone != null">
                stuPhone = #{stuphone,jdbcType=VARCHAR},
            </if>
            <if test="textbookid != null">
                textbookId = #{textbookid,jdbcType=BIGINT},
            </if>
            <if test="creator != null">
                creator = #{creator,jdbcType=VARCHAR},
            </if>
            <if test="lastmodifier != null">
                lastModifier = #{lastmodifier,jdbcType=VARCHAR},
            </if>
            <if test="countdate != null">
                countDate = #{countdate,jdbcType=INTEGER},
            </if>
            <if test="counttime != null">
                countTime = #{counttime,jdbcType=INTEGER},
            </if>
            <if test="countstu != null">
                countStu = #{countstu,jdbcType=INTEGER},
            </if>
            <if test="sketchtype != null">
                sketchType = #{sketchtype,jdbcType=INTEGER},
            </if>
            <if test="coursestyle != null">
                courseStyle = #{coursestyle,jdbcType=INTEGER},
            </if>
            <if test="classtype != null">
                classType = #{classtype,jdbcType=INTEGER},
            </if>
            <if test="process != null">
                process = #{process,jdbcType=INTEGER},
            </if>
            <if test="coursestatus != null">
                courseStatus = #{coursestatus,jdbcType=INTEGER},
            </if>
            <if test="pay != null">
                pay = #{pay,jdbcType=VARCHAR},
            </if>
            <if test="perpay != null">
                perPay = #{perpay,jdbcType=VARCHAR},
            </if>
            <if test="couponpay != null">
                couponPay = #{couponpay,jdbcType=VARCHAR},
            </if>
            <if test="originalpay != null">
                originalPay = #{originalpay,jdbcType=VARCHAR},
            </if>
            <if test="couponrule != null">
                couponRule = #{couponrule,jdbcType=INTEGER},
            </if>
            <if test="begindate != null">
                beginDate = #{begindate,jdbcType=BIGINT},
            </if>
            <if test="enddate != null">
                endDate = #{enddate,jdbcType=BIGINT},
            </if>
            <if test="coursenum != null">
                courseNum = #{coursenum,jdbcType=INTEGER},
            </if>
            <if test="hasnum != null">
                hasNum = #{hasnum,jdbcType=INTEGER},
            </if>
            <if test="cancelnum != null">
                cancelNum = #{cancelnum,jdbcType=INTEGER},
            </if>
            <if test="coursenuminput != null">
                courseNumInput = #{coursenuminput,jdbcType=INTEGER},
            </if>
            <if test="ordernum != null">
                orderNum = #{ordernum,jdbcType=INTEGER},
            </if>
            <if test="fav != null">
                fav = #{fav,jdbcType=BIGINT},
            </if>
            <if test="viplevel != null">
                vipLevel = #{viplevel,jdbcType=INTEGER},
            </if>
            <if test="cancelreason != null">
                cancelReason = #{cancelreason,jdbcType=INTEGER},
            </if>
            <if test="createdate != null">
                createDate = #{createdate,jdbcType=BIGINT},
            </if>
            <if test="lastmoddate != null">
                lastModDate = #{lastmoddate,jdbcType=BIGINT},
            </if>
            <if test="formatter != null">
                formatter = #{formatter,jdbcType=VARCHAR},
            </if>
            <if test="status != null">
                status = #{status,jdbcType=TINYINT},
            </if>
        </set>
        where id = #{id,jdbcType=BIGINT}
    </update>
    
    <delete id="delete" parameterType="java.lang.Long">
        <!--
          WARNING - @mbg.generated
          This element is automatically generated by MyBatis Generator, do not modify.
        -->
        delete from qfd_sketch
        where id = #{id,jdbcType=BIGINT}
    </delete>
</mapper>

8.已经改成比较符合我们规范和使用的xml文件了,看着很让人舒服不别扭;小结:这些修改代码都是源码生成器必经的逻辑,所以有兴趣继续改造的同学可以继续断点查看并按自己的习惯修改,我只是大概讲了那些部分都是关键地方,下一篇我应该会讲解如何增加自定义sql了,大家有兴趣继续学习的请不要错过咯,再次谢谢大家的支持


目录
相关文章
|
2月前
|
SQL Java 数据库连接
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
|
2月前
|
SQL Java 数据库连接
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
|
5月前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
5月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
6月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
7月前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
7月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
2月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
50 0
|
4月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
171 2
|
7月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
295 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。

热门文章

最新文章