Mybatis的自我修养之五(动态SQL)

动态SQL

一、多条件组合查询

实例:顾客订单关系

在顾客映射文件中实现多条件查询方法

①更新方法中的动态SQL(多条件修改)
在这里插入图片描述
②在插入中无需使用动态SQL

③查询中使用动态SQL(多条件组合查询)
在这里插入图片描述
二、forEach使用

用来实现传入的多个参数,进行查询,使用foreach进行传值
在这里插入图片描述
三、sql片段
将sql中重复出现的片段提取出来,使用时用include引用即可,最终达到sql重用的目的。

步骤① 定义SQL片段
在这里插入图片描述
步骤② 导入SQL片段
在这里插入图片描述
在这里插入图片描述
四、一对一查询

实例:查询所有订单信息,关联查询下单用户信息

方式一:通过自定义查询结果实体来映射结果

① 定义实体类orderCustomer继承Order类(在orderCustomer类中继承了order的属性,新定义一个name属性用来存储订单关联的客户)
在这里插入图片描述
② 在ordermapper接口中定义接口
在这里插入图片描述
③ 在ordermapper.xml中写SQL语句
在这里插入图片描述
④ 测试方法
在这里插入图片描述
⑤ 测试结果
在这里插入图片描述
方式二:在xml中用resultMap实现

① 在order实体中加入customer属性,costomer属性用于存储关联查询客户的信息,因为订单关联客户是一对一关系,所以这里使用单个costomer对象存储关联查询的客户信息
在这里插入图片描述
② OraderMapper订单接口
在这里插入图片描述
③ 在ordermapper.xml中写SQL语句
在这里插入图片描述
④测试方法
在这里插入图片描述
⑤测试结果
在这里插入图片描述
五、一对多查询

实例:查询顾客,关联查询所对应的订单

①在顾客customer实体类中定义订单集合
在这里插入图片描述
②在customermapper接口中定义方法
在这里插入图片描述
③在customermapper.xml中写SQL
在这里插入图片描述
在这里插入图片描述
拓展:可以使用extends继承的方式来简化
在这里插入图片描述

④测试方法
在这里插入图片描述
⑤测试结果
在这里插入图片描述
六、多对多查询

实例:查询学生,及其对应各课程的成绩

①定义学生、课程、分数实体

学生实体
在这里插入图片描述
课程实体
在这里插入图片描述
分数实体(中间表,用来存分数)
在这里插入图片描述
②在接口中定义方法
在这里插入图片描述
③在xml中写SQL
在这里插入图片描述
④测试方法
在这里插入图片描述
⑤测试结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值