首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mybatis中的动态SQL

场景介绍

如果只是简单的CRUD, 可能只是需要一个parameterType就可以了, 当然这个接收参数可以是是自定义类型, 也可以是基本数据类型. 可是当传入的参数个数不确定, 或者根据传入的参数是否有值来决定生成什么样的sql语句, 就需要用到mybatis的动态SQL功能了.

项目中用到的xml

mybatis映射表

mybatis配置表

项目中用到的java类

接口

User类

项目中用到的数据库表

动态SQL - if标签

当我们使用普通的select标签进行sql语句查询时, 如果where后面的某个条件为空, 那么造成的后果可能就是查询不到任何结果

mybatis中xml的配置

调试代码

生成的sql语句和对应的参数

执行的结果

预期结果

我们预期是当我们传入的参数有值时, 都会将该条件拼接到where语句后面, 如果没有值, 则不拼接

使用标签来完成这个功能

使用标签后生成的sql语句和参数

当使用标签后, 如果有空的参数, 则不会将该参数生成到sql语句中

使用标签后的结果

[User]

动态SQL - foreach标签

当我们使用in语句要查询多条数据时, 可能需要传入一个集合当作参数, 这里我们需要用到标签

mybatis中xml的配置

调试代码

生成的sql语句和参数

执行结果

当前users表中只没有id为3的数据, 因此只查询出来两条

[User, User]

SQL抽取 - sql标签

SQL引入 - include标签

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210929A01VI500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券