这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【mybatis常用标签和动态查询 】

修真院java小课堂】课题名称

开场语:

大家好,我是IT修真院郑州分院第13期的学员崔震,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网后端(职业)任务1,深度思考中的知识点——mybatis常用标签和动态查询

(1)背景介绍:

mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。使用Mybati后只需要提供sql语句,其他的工作都交给了Mybatis去做,比如创建连接,Statement,JDBC相关的异常处理。这些重复性的工作都交给了Mybatis去做,我们只需要关注增删查改操作层面的东西,而别的那些我们之前重复性的工作都被Mybatis封装。进而使代码更简洁,更易解读,更易维护

(2)知识剖析:

<if>标签

if元素是最常用的判断语句相当于java中的if语句,他常常与test属性联合使用,if  test 就相当于判定, 若符合标签标签中的条件,则在SQL语句上添加<if></if>内的条件下面代码实战我们会详细讲到

<where>标签

where标签经常跟if标签搭配使用,where标签会判断if标签里的条件是否成立,如果有条件成立则会拼接执行该条件下的sql语句。where标签避免所有条件都为空的时候出现“select * from user where ”这种会出错的情况,当然我们也可以在where后面加入“1=1”简单的解决。

<set>标签

set标签一般用在update语句中,set标签与where标签类似,当我们在update语句里碰到多个字段相关的问题,在这种情况下我们就会用到set标签,他也是判断if标签里的条件是否成立,然后拼接执行sql语句。

<choose>标签

相比于if标签二选一,choose标签就有了第三种选择,或者更多的选择,在映射器的动态语句中使用choose..when..otherwise..这三个元素就能满足不同的业务要求,Mybatis会根据参数的设置进行判断,来拼接组装sql语句,当when标签下无满足条件,则会执行otherwise标签里的语句。

<foreach>标签

foreach元素是一个循环语句,他的作用是遍历集合,他能够很好的支持数组和List的集合。并对此提供遍历,foreach标签常用于in这样的语法里,进行批量处理

(3)常见问题:

if标签与choose标签的区别

(4)解决方案:

if是不管条件成不成立都会执行下一条if;而choose中,如果when中先执行判断的成立了,则不会再往后执行。

(5)编码实战:

(6)拓展思考:

mybatis 除了使用xml方式还有别的方式吗?

还可以吧xml改为Mapper接口

(7)参考文献:

http://how2j.cn/k/mybatis/myb...

http://www.mybatis.org/mybati...

Q1:提问人:为什么要使用动态查询
A1:回答人:因为你不能确定用户在搜索时会输入什么,想要搜索什么字段,所以我们就使用动态查询,判断用户输入的内容进行相应的查询。
Q2:提问人:sql语句后面为什么要加where1=1
A2:回答人:因为如果下一个条件判断不成立,进行查询时sql语句就会是 select*from student where,传入这样的sql语句就会出错,因为where后面没有跟一个判断条件,所以我们给where后面加入一个1=1恒成立的判断条件sql语句就不会出错
Q3:提问人:if标签与choose标签的区别

A3回答人:if是不管条件成不成立都会执行下一条if;而choose中,如果when中先执行判断的成立了,则不会再往后执行。

(9)鸣谢:

感谢张亚强师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

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

mybatis常用标签和动态查询相关推荐

  1. 猿创征文|mybatis 字段与数据库关键字冲突了怎么办、mybatis for 循环查询输出、mybatis常用标签

    mybatis 字段与数据库关键字冲突了怎么办 如update join_brand_hot set index = #{top} where id = #{id} 这样明显会因为index与索引关键 ...

  2. Mybatis常用标签及属性

    一.常用标签.动态Sql 目录 一.常用标签.动态Sql 二.常用标签属性 select标签: <select id="findUserById" parameterType ...

  3. MyBatis 常用标签简单总结

    MyBatis 常用标签简单总结 if 标签:类似于 Java 中的 if 语句 where标签:根据查询条件是否存在,来决定是否生成 where 字符串 set标签:根据查询条件是否存在,来决定是否 ...

  4. Mybatis常用标签详解

    文章目录 命名空间 顶级元素 select insert, update 和 delete sql resultMap cache cache-ref 动态sql if标签 choose.when.o ...

  5. java基础 - Mybatis常用标签

    1. 定义sql语句 1.1 select 标签 id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user result ...

  6. 框架:mybatis常用标签(refid、foreach、trim)

    1.mybatis中refid是什么意思 1.首先定义一个sql标签,一定要定义唯一id <sql id="Base_Column_List" >name,age< ...

  7. webService+mysql+mybatis+layui 分表动态查询、导出

    目录 1.介绍 2.获取WebService接口数据 3.mysql 数据库使用分表MYISAM引擎 4.layui 数据表格,分离的表头.表数据.分页导航插件 5. 点击按钮,多表联合条件查询 6. ...

  8. Mybatis常用标签使用

    trim元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix:可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖, ...

  9. Mybatis中的常用标签

    trim标签 MyBatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"v ...

最新文章

  1. 洛谷——1115 最大子段和(区间DP)
  2. linux进程操作命令,linux常用进程命令
  3. 神经网络:卷积神经网络CNN
  4. 009_CSS分组选择器
  5. 069_html统一资源定位器
  6. C/C++extern关键字
  7. c语言记录五个数组编程,C语言经典编程之数组
  8. python定义函数需要保留字def_定义函数时要用到哪一个python保留字?_学小易找答案...
  9. 实现高性能稳定的socket tcp通讯经验分享
  10. mybatis中refid是什么意思
  11. 如何补充策略与模型在风控中的滞后性
  12. python等待10秒_Python交互性编程案例干货分享~| 数字猜谜 | 倒数日App | “拍10秒”测反应速度...
  13. C3P0连接池的使用
  14. oracle 授权所有语句,oracle grant 授权语句
  15. 谷歌、百度、必应的搜索技巧
  16. 英伟达tegra210 连接电视/hifi,设置默认声卡HDMI,
  17. 飞步科技 x 焱融 YRCloudFile:大幅提升训练效率,开启智驾新纪元
  18. 2022年山东省安全员C证特种作业证考试题库模拟考试平台操作
  19. app测试员究竟测些什么呢?
  20. iOS小技能:查看大图浏览器(图片支持滑动切换)

热门文章

  1. Ckeditor通过Ajax更新数据
  2. Java性能调优、LinkedIn容器部署、阿里移动性能调优——首届APMCon精彩演讲先睹为快...
  3. ASP.NET 初级开发成员面试题部分面试题
  4. linux运维 对比 网络_linux运维、架构之路-网络基础
  5. 【Python自学笔记】10个爬虫入门实例,附源码与注释
  6. 非科班的我如何自学Python在一线城市找到一份15k的offer的?
  7. 还在为学习Python没有路线发愁吗?
  8. u盘安装centos8黑屏_崩溃!电脑突然黑屏无法启动
  9. mysql 带宽字段_技术分享 | 网络带宽如何影响 MySQL 性能
  10. 【Java】排序算法 之 【归并排序】 总结