Java - MyBatis中的动态SQL是什么意思?
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击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是什么意思?相关推荐
- 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)
视频地址:http://edu.51cto.com/sd/be679 动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的 ...
- Mybatis中的动态SQL,一对一,一对多以及标签
文章目录 动态SQL中的结果集映射 一对一 一对多 where标签 where..if...标签(作用和Java中的if一样,只要满足if条件的都可以拼接) where..choose..标签(作用和 ...
- Mybatis 中update动态SQL语句
Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...
- mybatis中实现动态SQL
动态SQL语句,也就意味着SQL语句不在是一成不变的而是具有多样性. if if的用法还是跟平常差不多的(不过没有else if也没有else) <update id="modify& ...
- MyBatis 中的动态 SQL 特性
动态SQL 定义:SQL语句执行时,会根据传入的参数的个数及参数的内容而发生变化. 上代码: application.properties #MySQL数据源 spring.datasource.ur ...
- mybatis中的动态sql
if标签 parameterType类型是pojo test中的属性必须是pojo中的属性并且严格区分大小写(sql语句中不区分大小写) 使用NGNL语言进行查询 标准的判断非空形式为<if t ...
- Mybatis中的动态SQL记录
if判断 <mapper namespace="cn.wideth.mapper.CarMapper"><select id="selectByCarI ...
- mybatis中mapper文件中的动态sql语句
有时候在检索时,用户提供的数据不一样多,我们很难使用静态的sql语句进行判别,所以这个时候需要使用动态的sql语句 这里主要针对Mapper.xml文件中的sql语句,笔者在下面所有的例子中只提供了M ...
- Mybatis 注解开发 + 动态SQL
Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加 @Insert 删除 @Delete 查询 @Select 修改 @ ...
最新文章
- 合并本地Maven仓库
- Php无刷新修改url,history 实现无刷新更改url和页面内容
- python导入csv报错_Python Pandas read_csv报错
- SSIS 学习之旅 FTP访问类
- docker 启动的 jenkins 中调用宿主机docker进行build
- 阿里数据架构师多年心得:IT从业者必看的数据仓库知识点
- 城市APP集成Firebase/Admob/增强现实带PHP管理后台
- 95-910-172-源码-FlinkSQL-Flink SQL提升吞吐的利器 MicroBatch
- 最优化设置mysql的max_connections
- Docker安装与修改默认工作目录
- 个人JS脚本验证大全[转]
- 【翻译】Ext JS 5的委托事件和手势
- 如何在visio中插入矩阵公式
- 职场:如何成为PPT高手【01思维篇】
- 支持蓝牙的模拟器_横竖都能玩的小鸡G6,蓝牙连接尽情享受手游乐趣
- java get请求中文_Java语言get请求中文乱码问题解决办法!
- geoserver中sld设置
- vscode撤销删除快捷键_在Windows资源管理器中使用键盘快捷键撤消意外移动或删除...
- (附源码)SSM学科竞赛赛场安排系统JAVA计算机毕业设计项目
- Android 清理后台进程