MyBatis實踐總結

Mybatis中文官網地址:https://mybatis.org/mybatis-3/zh/index.html

在這裏插入圖片描述

【1】插入後將主鍵ID放回到對象中

MySQL數據庫,SpringBoot+MyBatis。mapper.xml配置如下:

<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.jane.knowledge.entity.SysMoment">
    insert into tb_sys_moment (id, title, content, 
      object_id, field1, field2, 
      field3, field4, create_time, 
      update_time)
    values (#{id,jdbcType=BIGINT}, #{title,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, 
      #{objectId,jdbcType=BIGINT}, #{field1,jdbcType=VARCHAR}, #{field2,jdbcType=VARCHAR}, 
      #{field3,jdbcType=VARCHAR}, #{field4,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
      #{updateTime,jdbcType=TIMESTAMP})
  </insert>

效果如下:

插入後的sysMoment:SysMoment{id=5,  content='測試朋友圈', objectId=5, , createTime=Sat Nov 09 14:55:55 CST 2019}

主要核心思想:

//id爲對象的主鍵對應屬性名
useGeneratedKeys="true" keyProperty="id" 

【2】XML中使用CDATA

① 什麼是CDATA

CDATA 是由XML定義的,跟Mybatis沒啥關係。CDATA 指的是不由 XML 解析器進行解析的文本數據。被<![CDATA[]]>這個標記所包含的內容將表示爲純文本,比如<![CDATA[<]]>表示文本內容“<”。全名:character data<![CDATA[]]>表示xml解析器忽略解析,比使用轉義字符更快。

sql中有一些特殊的字符,在解析xml文件的時候會被轉義。使用CDATA可以避免此類情況。比如包含”<”、”>”、”&”等字符,最好把他們都放到CDATA中。

② mybatis的xml中使用

實例如下:

 <if test="queryParam.createTime != null">
      <![CDATA[AND create_time >= #{queryParam.createTime}]]>
  </if>

需要注意的是mybatis中的<if test=""></if>、<where></where>、<choose></choose>、<trim></trim> 等這些標籤不能寫到CDATA中。否則標籤將不會被mybatis解析。

在XML中,需要轉義的字符有: 
  (1)&  	&amp; 
  (2)<  	&lt; 
  (3)>  	&gt; 
  (4)" 	&quot; 
  (5)'  &apos; 

【3】like與 concat

like的使用通常離不開concact函數,具體示例如下:

<if test="content !=null and content!=''">
	and content like concat('%', #{content},'%')
</if>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章