" type="hidden"/>

mybatis中


  這個標簽使用的有些少,但是想寫通用一點的sql時,用起來還是挺好的。

  在后面的說明中,遇到一個坑,剛剛修改了一下,寫的多了才會遇見問題。

1.說明

  <trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>

  prefix:在trim標簽內sql語句加上前綴。

  suffix:在trim標簽內sql語句加上后綴。

  prefixOverrides:指定去除多余的前綴內容

  suffixOverrides:指定去除多余的后綴內容,如:suffixOverrides=",",去除trim標簽內sql語句多余的后綴","。

 

2.示例

  在本示例中,因為在后面有三個字段,所以前面的都可加上逗號,也不會出現問題。

  如果沒有這三個字段,前面第幾個開始不加逗號,說不准,這個時候,就需要使用suffixOverrides去除。

<insert id="save" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO t_contract_monitor
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="contractId != null">
                contract_id,
            </if>
            <if test="contractNo != null">
                contract_no,
            </if>
            <if test="merchantId != null">
                merchant_id,
            </if>
            gmt_create,
            gmt_modify,
            is_deleted
        </trim>
        <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
            <if test="contractId != null">
                #{contractId,jdbcType=BIGINT},
            </if>
            <if test="contractNo != null">
                #{contractNo,jdbcType=VARCHAR},
            </if>
            <if test="merchantId != null">
                #{merchantId,jdbcType=BIGINT},
            </if>
            now(), now(), 0
        </trim>
    </insert>

  

3.另外說明

  useGeneratedKeys="true" keyProperty="id"

  當我們insert時,返回剛剛新增的id,可以加上上面的兩個屬性。

  主要是在主鍵是自增的情況下,添加成功后可以直接使用主鍵值,其中keyProperty的值是對象的屬性值,不是數據庫表中的字段名

 

  但是,需要有一些注意:

Long save = mcsContractBillTermRecordMapper.save(mcsContractBillTermRecord);

  這個save是新增的個數,那新增id返回值在哪里呢,在mcsContractBillTermRecord中,自己get。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM