您好,登錄后才能下訂單哦!
這篇文章主要講解了“weed3-3.2.Xml sql的指令和語法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“weed3-3.2.Xml sql的指令和語法有哪些”吧!
源碼:https://github.com/noear/weed3 源碼:https://gitee.com/noear/weed3
這個示例里把各種情況應該呈現出來了
<?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的指令和語法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。