美文网首页IT修真院_JAVA
Mybatis常用标签和动态查询

Mybatis常用标签和动态查询

作者: 7f954e4683a7 | 来源:发表于2018-01-25 09:43 被阅读49次

大家好,我是IT修真院深圳分院第4期学员,一枚正直善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务10中,task1部分的知识点——mybatis常用标签和动态查询


一、背景介绍

  在日常开发中,基本的静态的查询情况已经足够对付。但有些时候,我们想寻求一个能够根据参数自动调整SQL查询的方法。如,学校教导主任发现一个学生违反校纪校规,但是并没有当场抓住该学生,于是,他通过已经掌握的学生信息如【性别】,【年纪】,【身高】等信息来查询符合条件的学生。但是,这些信息的数量每次得到的数量都是不同的。换句话说,我们在设计系统时,无法确定传入参数的数量。也没有获得一个足以唯一确定这个对象的主键【如学号】。这便需要使用到动态查询功能。


二、知识剖析

<if>标签

说明: 若符合  标签标签中的条件,则在SQL语句上添加<if></if>内的条件

常见场景:应用场景广泛,若条件不为null,添加SQL语句,在update中最为常见,也可以在insert中使用,避免插入null,导致默认值失效,当然其他类型例如select也可以使用

<where>标签

说明:避免所有条件都为空的时候出现“select * from user where ”这种会出错的情况,当然我们也可以在where后面加入“1=1”简单的解决,但是有更简单的方法,何乐而不为呢?

<set>标签

<set>标签元素会动态前置 SET 关键字,同时也会消除无关的逗号,因为用了条件语句之后很可能就会在生成的赋值语句的后面留下这些逗号,和相同,也是避免SQL语句出错而设置的一个标签

<choose>标签

说明:自带<when>和 <otherwise>两个标签,标签可以有多个,若其中一个内条件符合,则终止 <choose>;若无条件符合,则采用<otherwise>中的语句

常见场景:复用单条件SQL语句,例如查找一个用户,按“年龄查找”,或按“性别”查找等

<foreach>标签

说明:遍历传入的List、collection或map参数,依次使用集合中的元素执行SQL语句


三、常见问题

如果没有mybatis,又想要使用动态查询怎么办?


四、解决方案

使用葡萄藤的工具类库,SQLUtil,将MAP转化为SQL语句,再使用JDBC或JDBCTemplate查询


六、扩展思考


七、参考文献

1.CSDN:http://blog.csdn.net/ABCD898989/article/details/51218551

2.mybatis官方文档


八、更多讨论

提问1.还有一个trim标签,那有什么用?

答:这个是和<where><set>是一样的功能,即有条件的增加或删除一个字符串或标记

提问2:平时我们插入不用动态标签页没有什么问题

答:这是因为平时我们不设默认值,一旦设定默认值,还是要使用动态插入的

提问3:<set>标签只能用户update吗?

答:没有错,因为sql语句本身的set本来就是用于update语句

感谢大家观看


mybatis常用标签和动态查询_腾讯视频

PPT:PPT

视频:视频

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:13299900,或者你可以直接点击此链接:http://www.jnshu.com/login/1/13299900

相关文章

  • mybatis常用标签和动态查询

    大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。今天给大家分享一下,修真院官网JAVA...

  • Mybatis常用标签和动态查询

    大家好,我是IT修真院深圳分院第4期学员,一枚正直善良的JAVA程序员。 今天给大家分享一下,修真院官网JAVA任...

  • mybatis的常用标签和动态查询

    今天给大家分享一下,修真院官网JAVA任务1,深度思考中的知识点--mybatis 视频链接:https://v....

  • Mybatis动态标签

    Mybatis动态标签 汇总 标签名称示意select定义查询语句insert定义增加语句update定义修改语句...

  • Spring 注解

    1.Spring 注解 2.mybatis常用标签 3.Repository中查询方法定义规则和使用 w

  • 5/10day51_查询&多表

    回顾 优化测试方法 mybatis查询和多表 一 Mybatis单表查询 1.1 resultMap标签 如果数据...

  • Mybatis之foreach标签使用方法

    MyBatis动态sql之foreach标签 Mybatis之foreach标签使用方法,Mybatis之fore...

  • MyBatis | 常用标签作用和使用场景示例

    一、MyBatis常用标签 常用标签: 、、 、 1、 标签 作用:whe...

  • MyBatis动态SQL

    MyBatis 动态SQL 内容 Mybatis动态SQL在XML中支持的几种标签: if chose trim、...

  • MyBatis(三)动态SQL

    MyBatis提供了一些相当方便的标签元素来帮助我们编写动态SQL查询语句,例如if,where,trim,cho...

网友评论

    本文标题:Mybatis常用标签和动态查询

    本文链接:https://www.haomeiwen.com/subject/jzmpaxtx.html