分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

对于一些复杂的查询,我们可能会指定多个查询条件,但是这些条件可能存在也可能不存在,例如在58同城上面找房子,我们可能会指定面积、楼层和所在位置来查找房源,也可能会指定面积、价格、户型和所在位置来查找房源,此时就需要根据用户指定的条件动态生成SQL语句。如果不使用持久层框架我们可能需要自己拼装SQL语句,还好MyBatis提供了动态SQL的功能来解决这个问题。MyBatis中用于实现动态SQL的元素主要有: 
- if 
- choose / when / otherwise 
- trim 
- where 
- set 
- foreach

下面是映射文件的片段。

    <select id="foo" parameterType="Blog" resultType="Blog">select * from t_blog where 1 = 1<if test="title != null">and title = #{title}</if><if test="content != null">and content = #{content}</if><if test="owner != null">and owner = #{owner}</if></select>

当然也可以像下面这些书写。

    <select id="foo" parameterType="Blog" resultType="Blog">select * from t_blog where 1 = 1 <choose><when test="title != null">and title = #{title}</when><when test="content != null">and content = #{content}</when><otherwise>and owner = "owner1"</otherwise></choose></select>

再看看下面这个例子。

    <select id="bar" resultType="Blog">select * from t_blog where id in<foreach collection="array" index="index" item="item" open="(" separator="," close=")">#{item}</foreach></select>

Java - MyBatis中的动态SQL是什么意思?相关推荐

  1. 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

    视频地址:http://edu.51cto.com/sd/be679 动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的 ...

  2. Mybatis中的动态SQL,一对一,一对多以及标签

    文章目录 动态SQL中的结果集映射 一对一 一对多 where标签 where..if...标签(作用和Java中的if一样,只要满足if条件的都可以拼接) where..choose..标签(作用和 ...

  3. Mybatis 中update动态SQL语句

    Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...

  4. mybatis中实现动态SQL

    动态SQL语句,也就意味着SQL语句不在是一成不变的而是具有多样性. if if的用法还是跟平常差不多的(不过没有else if也没有else) <update id="modify& ...

  5. MyBatis 中的动态 SQL 特性

    动态SQL 定义:SQL语句执行时,会根据传入的参数的个数及参数的内容而发生变化. 上代码: application.properties #MySQL数据源 spring.datasource.ur ...

  6. mybatis中的动态sql

    if标签 parameterType类型是pojo test中的属性必须是pojo中的属性并且严格区分大小写(sql语句中不区分大小写) 使用NGNL语言进行查询 标准的判断非空形式为<if t ...

  7. Mybatis中的动态SQL记录

    if判断 <mapper namespace="cn.wideth.mapper.CarMapper"><select id="selectByCarI ...

  8. mybatis中mapper文件中的动态sql语句

    有时候在检索时,用户提供的数据不一样多,我们很难使用静态的sql语句进行判别,所以这个时候需要使用动态的sql语句 这里主要针对Mapper.xml文件中的sql语句,笔者在下面所有的例子中只提供了M ...

  9. Mybatis 注解开发 + 动态SQL

    Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加 @Insert 删除 @Delete 查询 @Select 修改 @ ...

最新文章

  1. 合并本地Maven仓库
  2. Php无刷新修改url,history 实现无刷新更改url和页面内容
  3. python导入csv报错_Python Pandas read_csv报错
  4. SSIS 学习之旅 FTP访问类
  5. docker 启动的 jenkins 中调用宿主机docker进行build
  6. 阿里数据架构师多年心得:IT从业者必看的数据仓库知识点
  7. 城市APP集成Firebase/Admob/增强现实带PHP管理后台
  8. 95-910-172-源码-FlinkSQL-Flink SQL提升吞吐的利器 MicroBatch
  9. 最优化设置mysql的max_connections
  10. Docker安装与修改默认工作目录
  11. 个人JS脚本验证大全[转]
  12. 【翻译】Ext JS 5的委托事件和手势
  13. 如何在visio中插入矩阵公式
  14. 职场:如何成为PPT高手【01思维篇】
  15. 支持蓝牙的模拟器_横竖都能玩的小鸡G6,蓝牙连接尽情享受手游乐趣
  16. java get请求中文_Java语言get请求中文乱码问题解决办法!
  17. geoserver中sld设置
  18. vscode撤销删除快捷键_在Windows资源管理器中使用键盘快捷键撤消意外移动或删除...
  19. (附源码)SSM学科竞赛赛场安排系统JAVA计算机毕业设计项目
  20. Android 清理后台进程

热门文章

  1. 研究生英语期末复习(Unit1)
  2. 计算机视觉 数据集(更新于2020.11.27)
  3. 正则表达式提取html内容
  4. 从 LoG 到 DoG 再到 XDoG, FDoG
  5. 第一章:机器学习概览
  6. Android 4.4 Kit Kat 源码下载
  7. win10驱动开发19——IRP同步
  8. Java Web财务信息管理系统
  9. 【考研英语-基础-简单句】简单句的核心变化_谓语动词时态(常用8种+4)
  10. 基于低代码平台实现的政务督办管理系统有哪些特色功能?