中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

weed3-3.2.Xml sql的指令和語法有哪些

發布時間:2021-06-24 14:34:27 來源:億速云 閱讀:144 作者:chen 欄目:大數據

這篇文章主要講解了“weed3-3.2.Xml sql的指令和語法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“weed3-3.2.Xml sql的指令和語法有哪些”吧!

Weed3 一個微型ORM框架(只有0.1Mb哦)

源碼:https://github.com/noear/weed3 源碼:https://gitee.com/noear/weed3

五個指令 + 三種變量形式。先來段xml

這個示例里把各種情況應該呈現出來了

<?xml version="1.0" encoding="utf-8" ?>
<mapper namespace="weed3demo.xmlsql2" :db="testdb">
    <sql id="user_add1" :return="long"
         :param="m:weed3demo.mapper.UserModel,sex:int"
         :note="添加用戶">
        INSERT user(user_id,mobile,sex) VALUES(@{m.user_id},@{m.mobile},@{sex})
    </sql>

    <sql id="user_add2" :return="long" :note="添加用戶">
        INSERT user(user_id) VALUES(@{user_id:int})
    </sql>

    <sql id="user_add_for" :return="long" :note="批量添加用戶3">
        INSERT user(id,mobile,sex) VALUES
        <for var="m:weed3demo.mapper.UserModel" items="list">
            (@{m.user_id},@{m.mobile},@{m.sex})
        </for>
    </sql>

    <sql id="user_del" :note="刪除一個用戶">
        DELETE FROM user WHERE id=@{m.user_id:long}
        <if test="sex > 0">
            AND sex=@{sex:int}
        </if>
    </sql>

    <sql id="user_set"
         :note="更新一個用戶,并清理相關相存"
         :caching="localCache"
         :cacheClear="user_${user_id},user_1">
        UPDATE user SET mobile=@{mobile:String},sex=@{sex:int}
        <if test="icon != null">
            icon=@{icon:String}
        </if>
    </sql>

    <sql id="user_get_list"
         :note="獲取一批符合條件的用戶"
         :declare="foList:int,user_id:long"
         :return="List[weed3demo.mapper.UserModel]"
         :caching="localCache"
         :cacheTag="user_${user_id},user_1">
        SELECT id,${cols:String} FROM user
        <trim prefix="WHERE" trimStart="AND ">
            <if test="mobile?!">
                AND mobile LIKE '${mobile:String}%'
            </if>
            <if test="foList == 0">
                AND type='article'
            </if>
            <if test="foList == 1">
                AND type='post'
            </if>
        </trim>
    </sql>

    <sql id="user_cols1">name,title,style,label</sql>
    <sql id="user_cols2">name,title</sql>

    <sql id="user_get_list2"
         :note="獲取一批符合條件的用戶"
         :declare="foList:int,user_id:long"
         :return="List[weed3demo.mapper.UserModel]"
         :caching="localCache"
         :cacheTag="user_${user_id},user_1">
        SELECT id,
        <if test="foList == 0">
            <ref sql="user_cols1"/>
        </if>
        <if test="foList == 1">
            <ref sql="user_cols2"/>
        </if>
        FROM user WHERE sex>1 AND mobile LIKE '@{mobile:String}%'

    </sql>
</mapper>
四個指令說明
sql 代碼塊定義指令
  :require(屬性:導入包或類)
  :param?(屬性:外部輸入變量申明;默認會自動生成::新增***)
  :declare(屬性:內部變量類型預申明)
  :return(屬性:返回類型)

  :db (屬性:數據庫上下文name)
  :note(屬性:描述、說明、注解)

  :caching(屬性:緩存服務name) //是對 ICacheController 接口的映射
  :cacheClear?(屬性:清除緩存)
  :cacheTag?(屬性:緩存標簽,支持在入參或結果里取值替換)
  :usingCache?(屬性:緩存時間,int)

if 判斷控制指令(沒有else)
  test (屬性:判斷檢測代碼)
     //xml避免語法增強:
     //lt(<) lte(<=) gt(>) gte(>=) and(&&) or(||)
        //例:m.sex gt 12 :: m.sex >=12
     //簡化語法增強:
     //??(非null,var!=null) ?!(非空字符串,StringUtils.isEmpty(var)==false)
        //例:m.icon??  ::m.icon!=null
        //例:m.icon?!  ::StringUtils.isEmpty(m.icon)==false

for 循環控制指令 (通過 ${var}_index 可獲得序號,例:m_index::新增***)
  var (屬性:循環變量申明)
  items (屬性:集合變量名稱)
  sep? (屬性:分隔符::新增***)

trim 修剪指令
  trimStart(屬性:開始位去除)
  trimEnd(屬性:結尾位去除)
  prefix(屬性:添加前綴)
  suffix(屬性:添加后綴)

ref 引用代碼塊指令
  sql (屬性:代碼塊id)
三種變量形式
name:type    = 變量申明(僅用于var ,或:declare)
@{name:type} = 變量注入(僅用于代碼塊)
${name:type} = 變量替換(用于代碼塊,或:cacheTag,或:cacheClear)
關于返回值的幾種形式說明
//多行,列表(用[]替代<>)
:return="List[weed3demo.mapper.UserModel]" //將返回 List<UserModel>
:return="List[String]" //將返回 List<String> (Date,Long,...大寫開頭的單值類型)
:return="MapList" //將返回 List<Map<String,Object>>
:return="DataList" //將返回 DataList

//一行
:return="weed3demo.mapper.UserModel" //將返回 UserModel
:return="Map" //將返回 Map<String,Object>
:return="DataItem" //將返回 DataItem

//單值
:return="String" //將返回 String (或別的任何單職類型)

感謝各位的閱讀,以上就是“weed3-3.2.Xml sql的指令和語法有哪些”的內容了,經過本文的學習后,相信大家對weed3-3.2.Xml sql的指令和語法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青河县| 太原市| 叙永县| 延吉市| 沈阳市| 鹿泉市| 明溪县| 高尔夫| 金寨县| 拉孜县| 岢岚县| 芦溪县| 靖宇县| 长阳| 肇州县| 安岳县| 广西| 孝昌县| 公安县| 赤城县| 原阳县| 湾仔区| 雅江县| 古浪县| 类乌齐县| 宣威市| 西峡县| 永登县| 永寿县| 彩票| 海晏县| 肥城市| 青海省| 乌拉特前旗| 布拖县| 麟游县| 北安市| 谷城县| 湘乡市| 申扎县| 开阳县|