java代码怎么动态修改xml配置文件内容_[MyBatis]-MyBatis框架-05-动态sql

MyBatis

动态sql

什么是动态sql

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。

虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形

简单案例分析

需求分析:用户信息综合查询列表和用户信息查询列表总数这两个Statement的定义使用动态sql完成

  • Mapper.xml中定义

07fbe8362642412df54d7fed2bfc7e5f.png

c375c5600d5db3c58d682eb8d7842eea.png
  • Mapper.java中添加方法

e20f1d448d38084c9dad2abe35d3227f.png
  • 在sqlMapConfig.xml中加载配置文件并编写测试代码进行测试

(此处使用的是上述案例中测试的代码,结果正常显示不再赘述)

Sql片段

需求分析:针对上方的简单案例分析,可以把公共的代码片段抽离成一个独立的sql片段,从而简化开发

ab4ac17b256bd9dacf1a50490fc67ae9.png

3a92c25c804070e5ab012cee2fa64f03.png

Mapper.xml中替换成如下的内容,其余基本的数据保持不变参考上述案例进行测试,结果正常显示,此处不再赘述

6312b508ee1a1e42b388fbdb1802e799.png

e1e48fd7d86ecd2fe0217e3b9cf29584.png

Foreach 遍历

需求分析:查询指定用户的id为 1 、10 、16 的用户信息

查询语句分析如下:

select * from user where (id=1 or id=10 or id =16)

Select * from user where id in(1,10,16)

  • UserQueryVO中添加查询条件List<Integer> ids(即根据id列表进行查找)

6d699dc2e0f93de8e16a86989af9679d.png
  • 指定mapper.xml中添加配置如下所示

ca0177319070a4cda8190a8699363053.png

9533831376c3c8d5b568a0475a965a2f.png
  • 指定mapper.java中添加方法

b7a0b44837b246727f63262a2b937a71.png
  • 在sqlMapConfig.xml中加载配置文件并编写测试代码进行测试

857628abb00b15eee8afe7b4c217a3af.png

测试结果:

6aa1757c3c4879e6f9d68f53ccb461ec.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值