这篇文章主要讲解了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。