动态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
④测试方法
⑤测试结果