先看不加判断的sql语句怎么写?

  1. 我们看到where和and。也就是说,当username和sex都有值的时候 使用where和and

    那如果只有sex怎么办?或者只有username怎么办?这种情况下,上面语句就会出问题了。

    所以,可以使用where标签和if标签。

    小二,先上截图,给大爷们看看,然后咱们在讲解。

    在Mapper-User.xml文件中:

  2. 接下来讲解where、if标签含义:

    :声明where标签开始

    :表示where标签结束

    :if标签开始

    test:是判断的表达式。

    注意,在表达式中并且是用字母and而非使用&符号

    字符串判断双引号套单引号使用

    :if标签结束

  3. where标签会自动判断前面是否有字段,如果有字段会使用and sex=${sex}这个语句。

    如果没有字段,and会被忽略直接跟在where后面。

    也就是说,如果username为空但是sex不为空的话。输入的sql又是什么?

  4. username和sex都存在的测试类:

  5. 执行后控制台输入的sql语句为:

  6. 如果username为空只有sex有值,会报错吗?

    请看测试类:

  7. 再看,执行后输出的sql语句:

mybatis if where标签怎么使用?相关推荐

  1. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦 ...

  2. Mybatis的where标签,还有这么多知识点

    背景 在上篇文章,我们系统地学习了where 1=1 相关的知识点,大家可以回看<不要再用where 1=1了!有更好的写法!>这篇文章.文章中涉及到了Mybatis的替代方案,有好学的朋 ...

  3. MyBatis 配置 settings 标签

    MyBatis 配置 settings 标签 1. 简介 2. Setting的详细配置信息 3.示例配置 1. 简介 MyBatis 的 是一个极其重要的标签调整,我们可以通过这个标签修改 MyBa ...

  4. Mybatis - xml文件标签中写注释

    Mybatis - xml文件标签中写注释 1.错误场景. ( /* */ 注释 ) 在IDEA中的直接使用快捷键注释 Ctrl + Shift + / 注释. SELECT t.name, t.ag ...

  5. mybatis 支持的标签操作

    62.mybatis支持的标签操作 mybatis只支持include|trim|where|set|foreach|choose|if这几个操作

  6. Mybatis之foreach标签

    Mybatis之foreach标签 案例:通过foreach标签实现如下sql查询,并在测试类中传入参数: select * from mybatis.blog where id in=(1 or 2 ...

  7. MyBatis学习——foreach标签的使用

    一.foreach标签属性解读 MyBatis的foreach标签应用于多参数的交互如:多参数(相同参数)查询.循环插入数据等,foreach标签包含collection.item.open.clos ...

  8. mybatis动态sql标签的使用

    动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格 ...

  9. Mybatis.cfg配置标签的顺序问题

    mybatis.cfg配置文件中的configuration表现中的元素是有顺序的,properties->settings->typeAliases->typeHandlers-& ...

  10. 在Mybatis的collection标签中获取以,分隔的id字符串

    2019独角兽企业重金招聘Python工程师标准>>> 有的时候我们把一个表的id以逗号(,)分隔的字符串形式放在另一个表里表示一种包含关系,当我们要查询出我们所需要的全部内容时,会 ...

最新文章

  1. Scrum立会报告+燃尽图(Beta阶段第二周第七次)
  2. 梯度、梯度下降,随机梯度下降
  3. REM重复制造MFBF功能
  4. JZOJ 5630. 【NOI2018模拟4.4】Connection
  5. 傅德良:选择视频编码器的误区
  6. python每天定时9点执行_python 定时器每天就执行一次的实现代码
  7. 前端学习(554):node实现登录和注册第二部分代码
  8. Hibernate的执行流程——SessionFactory的创建
  9. Metasploit应用举例
  10. 分享提高php编程效率的方法
  11. eclipse 主题设置
  12. Python 修改图片的时候抗锯齿
  13. 解锁计算机桌面,电脑锁屏按什么键解锁
  14. 程序员转型之程序员这个职业到底怎么样?
  15. BugKu-CTF(杂项misc)--YST的小游戏/easy_python
  16. C#调用百度地图API经验分享
  17. C++(电子)PPT例6、例7作业提交
  18. Origin绘制双Y轴图的方法
  19. 阿里云服务器部署网站
  20. java计算机毕业设计冠军体育用品购物网站MyBatis+系统+LW文档+源码+调试部署

热门文章

  1. 用三层交换机实现大中型企业VLAN
  2. Springboot构建Echarts数据可视化
  3. 选择数据分析软件时要注意什么
  4. 大数据平台搭建包含哪些层级
  5. 企业使用大数据分析有什么好处
  6. BiLSTM-CRF模型中的CRF层讲解
  7. Python如何在Dataframe中新添加一列
  8. CyclicBarrier多线程
  9. Oracle 11g 数据恢复 数据误删除后的恢复 0、执行 select log_mode from v$database;查看是否为归档模式 1、确定删除时间和被删除的表 04-23,GR
  10. Redis集群命令行部署工具