动态sql之片段抽取

MyBatis映射文件深入_动态sql之片段的抽取

比如如果我们在一个映射文件中加入有很多个select标签, 每个select标签都是以select * from user开头的, 并且他们如果都是同步变化的, 也就是可能某个时候要同时变为select id from user, 这个时候由于我们有多个select标签, 其中都要将 * 变为 id, 所以改变起来就会很麻烦, 也就是维护起来很困难, 所以我们就提出了sql片段的抽取, 利用sql片段的抽取, 我们就可以将这些相同的sql片段抽取出来放到一处一起维护, 要使用此sql片段的时候我们直接对这个sql片段进行引入即可

  • 这种维护其实在Java中是很常见的, 在Java中存在很多的抽取, 就是将多个相同的抽取出来放到一处, 只要我们维护这一处, 其他地方使用的时候只要是引用我们维护的这一处即可, 然后只要我们修改了维护的这一处的内容之后, 其余的引用的部分全部会一同改变

举例说明:

假如某个映射文件中有多个select标签, 并且每个标签中都有内容 select * from user , 那么我们就可以将这条sql语句提取出来(如下:)

<sql id = "selectUser">select * from user</sql>
  • sql标签就用来进行sql语句片段的抽取维护
  • sql标签中的id属性值就是该sql语句片段的唯一标识
  • 这个sql标签是写在映射文件中的

那么如何引用此sql片段?(如下:)

<include refid = "selectUser"></include>
  • ref表示引用, refid就是表示引用的sql的id值
  • 这里我们引用sql片段的标签是include标签
    • c语言中导入包时也是用的include
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值