Mybatis 操作数据库 2

1. 动态SQL

1.1 <if> 标签

注册分为两种字段: 必填字段非必填字段,那如果在添加用户的时候有不确定的字段传入,程序改如何实现?

这个时候就需要使用动态标签来判断了,比如添加性别 gender非必填字段,

1) 方法定义

2) 方法实现 

3) 运行

有 gender 的

 运行结果

没有gender

运行结果

  已经实现 动态SQL

1.2 <trim>标签

之前的插入用户功能,只是有一个 gender 字段是选填项,如果有多个字段,一般考虑标签结合标签,对多个字段都采取动态生成的方式。

标签中有如下属性:

  • prefix: 表示整个语句块,以prefix的值作为前缀
  • suffix: 表示整个语句块,以suffix的值作为后缀
  • prefixOverrides: 表示整个语句块要去除掉的前缀
  • suffixOverrides: 表示整个语句块要去除掉的后缀

调整后的语句为:

1.3 <where>标签

看下面这个场景,系统会根据我们的筛选条件,动态组装where 条件

没优化之前的代码

添加 where 标签优化后的代码

1.4 <set> 标签

需求: 根据传⼊的⽤户对象属性来更新⽤户数据,可以使用标签来指定动态内容.
接口定义: 根据传⼊的⽤户id属性,修改其他不为null的属性

代码:

利用 set 标签优化后

1.5 <foreach> 标签

对集合进行遍历时可以使用该标签. 标签有如下属性:

  • collection: 绑定方法参数中的集合,如 List, Set, Map 或数组对象
  • item: 遍历时的每一个对象
  • open: 语句块中开头的字符串
  • close: 语句块中结束的字符串
  • separator: 每次遍历之间间隔的字符串

 

 1.6 <include> 标签

在xml映射文件配置SQL,有时会存在很多重复的片段, 此时就会存在很多冗余的代码.如图

我们可以对重复的代码片段进行抽取,将其通过 <sql> 标签封装到一个SQL片段,然后通过 <include> 标签进行引用

  • <sql> 定义可重复使用的SQL片段
  • <include> : 通过属性refid, 指定 定义好的SQL 片段

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值