mybatis-generator擴充套件教程系列 -- 自定義sql xml檔案
阿新 • • 發佈:2019-01-02
今天抽空寫一下生成器比較重要的環節,如何自定義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$