Java知识Mybatis的特性详解动态SQL,拿走不谢
Mybatis的特性详解——动态SQL1.MyBatis if标签:条件判断 2.MyBatis choose、when和otherwise标签 5.MyBatis foreach标签 仰天大笑出门去,我辈岂是蓬蒿人
动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态 SQL 恰好解决了这一问题,可以根据场景动态的构建查询。
动态 SQL 只有几个基本元素,与 JSTL 或 XML 文本处理器相似,十分简单明了,大量的判断都可以在 MyBatis 的映射 XML 文件里配置,以达到许多需要大量代码才能实现的功能。
好处: :动态 SQL 大大减少了编写代码的工作量,更体现了 MyBatis 的灵活性、高度可配置性和可维护性。 一、动态sql的元素
MyBatis 的动态 SQL 包括以下几种元素,如下表所示
1.MyBatis if标签:条件判断
MyBatis if 类似于 Java 中的 if 语句,是 MyBatis 中最常用的判断语句。使用 if 标签可以节省许多拼接 SQL 的工作,把精力集中在 XML 的维护上。 if 语句使用方法简单,常常与 test 属性联合使用。
语法如下: SQL语句
当判断条件为 true 时,才会执行所包含的 SQL 语句。
最常见的场景是在 if 语句中包含 where 子句,例如。
以上代表表示根据name去查找相应的信息,但是name是一个可填可不填的条件,不填写的时候不作为查询条件。
可多个 if 语句同时使用。以下语句表示为可以按照 name 或者 id 进行模糊查询。如果您不输入,则返回所有的记录。但是,如果你传递了任意一个参数,它就会返回与给定参数相匹配的记录: 2.MyBatis choose、when和otherwise标签
MyBatis 中动态语句 choose-when-otherwise 类似于 Java 中的 switch-case-default 语句。由于 MyBatis 并没有为 if 提供对应的 else 标签,如果想要达到 ...... 的效果,可以借助 、、 来实现。
动态语句 choose-when-otherwise 语法如下。 SQL语句1 SQL语句2 SQL语句3 SQL语句4
choose 标签按顺序判断其内部 when 标签中的判断条件是否成立,如果有一个成立,则执行相应的SQL 语句,choose 执行结束;
如果都不成立,则执行 otherwise 中的 SQL 语句。
这类似于 Java 的 switch 语句; choose 为 switch, when 为 case, otherwise 则为 default。
示例
以下示例要求:
当网站名称不为空时,只用网站名称作为条件进行模糊查询;
当网站名称为空,而网址不为空时,则用网址作为条件进行模糊查询;
当网站名称和网址都为空时,则要求网站年龄不为空.
这样 MyBatis 就会根据参数的设置进行判断来动态组装 SQL,以满足不同业务的要求。远比 Hibernate 和 JDBC 中大量判断 Java 代码要清晰和明确。 3.MyBatis where标签
where 标签
where 标签主要用来简化 SQL 语句中的条件判断,可以自动处理 AND/OR 条件,语法如下 AND/OR ...
if 语句中判断条件为 true 时,where 关键字才会加入到组装的 SQL 里面,否则就不加入。where 会检索语句,它会将 where 后的第一个 SQL 条件语句的 AND 或者 OR 关键词去掉。
示例
德国称从俄罗斯吸取经验,暗示对华经济脱钩据俄罗斯卫星通讯社报道,德国外长安娜莱娜贝尔伯克表示,德国将在考虑到对俄罗斯的经验并注意到所有风险的情况下与中国发展经济关系。德国跟中国一直保持着密切的经济关系,贝尔伯格为什么还要
湖北湿地履约行丨江豚,憨态可掬的水中大熊猫长江江豚在天鹅洲故道嬉戏。湖北日报全媒记者黄中朝刘澍森通讯员赵辉胡红霞快艇飞驰,清风徐徐,波光粼粼,前方不时有江豚跃出水面,又迅即钻入水里。这里是石首长江天鹅洲故道,湖北长江天鹅洲
被照片改变的小城霞浦滩涂里捞不出鱼。欧浦力当了快六十年渔民,他深知这一点。可他还是穿上胶鞋胶衣,走进了滩涂。泥土慢慢淹没到大腿根,欧浦力走起来有些费劲,但刚好能把动作放慢一倍,便于摄像机的捕捉。对讲机
克洛普不担心下课因为跟老板关系好但他一样有更衣室危机一场01爆冷输球,直接把切尔西主帅图赫尔打下课。现在利物浦输了场14,场面比切尔西惨烈多了,克洛普耻辱一败利物浦军心涣散堪比切尔西平心而论,切尔西新赛季成绩不算差,英超6场3胜1平
中国科学家在14万个颗粒中分离出嫦娥石嫦娥石发现于嫦娥五号月壤的玄武岩碎屑中,是新的磷酸盐矿物,属于陨磷钠镁钙石(Merrillite)族。2021年6月,嫦娥五号月壤样品向全社会开放申请。中核集团核地研院是首批获得月
袁泉的悲哀,也是影视圈的悲哀影视圈题材层出不穷,许多中年男星因为角色再度翻红,成为导演手里的香饽饽,而40以上的女星基本没啥角色可拍,真是对中年女性十分不友好。最近由袁泉黄晓明主演的都市职场剧玫瑰之战已经完结
备孕期,准爸爸做好7件事情,有助胎儿的健康成长和家庭和谐文菁妈备孕不仅仅是妈妈的事情,毕竟孩子是爸爸和妈妈爱情的结晶,所以备孕的时候爸爸也是需要做好准备的。备孕时,爸爸要做好7件事情,一件都不能少第1件事去做产前检查在医院里面做产前检查
詹娜也穿连体衣,被金卡戴珊带跑偏!与布克深夜外出,身材好辣当地时间9月9日,卡戴珊家族的詹娜姐妹一同现身ShermanOaks外出拍摄节目,其中姐姐肯达尔詹娜穿着一件低胸的黑色紧身连体衣,标致的蜜桃臀,搭配完美腰线,大秀好身材,实在太辣了
皮蓬的尴尬,昔日队友儿子与自己前妻在一起说到皮蓬和乔丹,相信很多人都不陌生,在乔丹成为篮球之神的道路上,皮蓬可以说是最得力的帮手,可以说在球场上俩人是亲密无间的合作伙伴,但是最近发生的一件事情却让人大跌眼镜。因为皮蓬的前
邓亚萍一家3口打篮球!丈夫罕见亮相,16岁儿子身材魁梧相貌成熟作为知名运动员,在结婚生娃后几乎都有一个美好的愿望,就是希望孩子能继承自己的衣钵,自己能将毕生经验和技术倾囊相授,目前国乒女魔王邓亚萍和王楠的孩子都走上了职业化乒乓球路线,王楠6岁
身高1米6的F1总裁3任妻子都是超模,小46岁娇妻为他生子世界体坛有许多关注度十足的赛事,世界杯NBA温网等等,这些联赛都具有超高的关注度,影响力和吸金能力都很强。不过要说哪项运动最烧钱,那答案毫无疑问是F1。这项赛事堪称每一秒都在烧钱,