sql拼接字符串_Mybatis之SQL片段及动态Foreach使用

在本篇推文中,我们介绍SQL片段应用及动态SQL语句的Foreach的应用一、动态SQL片段简介在我们之前的动态SQL实例中,我们编写了很多重复代码,有时候可能某个 sql 语句我们用的特别多,为了增加代码的重用性,简化代码,我们需要将 这些代码抽取出来,然后使用时直接调用。具体举例如下:

50e5fceefb35cb936bb0fc8c45b2d79e.png

上面的两个if标签代码较为冗余,我们是否能够提取其公共代码,在此只直接调用?这就引出来SQL片段的概念。我们使用sql标签,将重复冗余代码抽取出来单独放置,并将其包含于标签中,并将这部分代码随意命名为id-title-author,如下:

4711eeccef1a6672beeac96e83fb8801.png

上图中红色方框中所圈代码即为我们抽取出的公共部分代码的处理,接下来我们需要在正常sql语句代码中引用这部分抽取出来的代码,引用代码使用标签及refid引用语句,具体操作如下所示:

a684eae824417701e8ff35d671a08cac.png

上图中在正常sql语句代码中引用这部分抽取出来的代码,然后使用代表性的名字id-title-author引用该部分代码,实现动态SQL的片段化处理。这样一来,我们的代码看上去会更加清晰明了。 二、动态SQL语句的Foreach的应用 1.数据库的准备首先,我们修改我们之前创建的数据库,将数据库id修改为,1,2,3…,完整的即将要使用的数据库如下所示:

a9ffe6fe24130d87ec2e6aa719404990.png

2.编写BlogMapper接口中的方法

afbe0610574fb3da05d948f4a985f41a.png

3.在BlogMapper.xml配置文件中编写sql语言(1)首先,在之前的学习中,编写一个查询id分别为1,2,3时查找对应的相关信息的sql语句为: 原本非动态SQL语句为:select * from blog where 1=1 and (id=1 or id=2 or id=3)  (2)接下来,我们使用动态SQL来进行改造,将如上的sql语句进行拼接,具体改造如下:其中, collection:指定输入对象中的集合属性其中, item:每次遍历生成的对象其中, open:开始遍历时的拼接字符串其中, close:结束时拼接的字符串其中, separator:遍历对象之间需要拼接的字符串将上面各指标均包含于标签内,即可。

44d61caad580b6115d9bf74bcab3cb05.png

(3)接下来编写测试类

35ec86a5dcc63980aaac51e374b9b5aa.png

(4)运行测试类,查看相关结果:由于我们在集合中为ids集合添加了id的值为1和2,故运行程序后在控制台输出id为1和2时的相关信息。如下图所示:

6201d94688302daeed09f09a83a6397a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值