当前位置: 首页 > news >正文

从头开始学MyBatis—03自定义映射和动态SQL

介绍了几种情况下自定义映射和动态SQL的使用方式

 

目录

1.resultMap处理字段和属性的映射关系

​编辑

2. 多对一映射处理

2.1级联方式处理映射关系

2.2使用association处理映射关系

2.3分步查询

①查询员工信息

②根据员工所对应的部门id查询部门信息

3.一对多映射处理

3.1collection

3.2分步查询

4.动态SQL

4.1if

4.2where

4.3trim

4.4choose、when、otherwise

4.5foreach

4.5.1批量添加

4.5.2批量删除

4.6SQL片段


1.resultMap处理字段和属性的映射关系

2. 多对一映射处理

2.1级联方式处理映射关系

2.2使用association处理映射关系

2.3分步查询

①查询员工信息

②根据员工所对应的部门id查询部门信息

3.一对多映射处理

3.1collection

 

3.2分步查询

 

4.动态SQL

4.1if

@Test
public void test(){SqlSession sqlSession = SqlSessionUtil.getSqlSession();DynamicSQLMapper mapper = sqlSession.getMapper(DynamicSQLMapper.class);List<Emp> results = mapper.gerEmpByCondition(new Emp(null, "张三", null, null));System.out.println(results);sqlSession.close();
}

4.2where

4.3trim

4.4choose、when、otherwise

4.5foreach

4.5.1批量添加

public interface DynamicSQLMapper {void insertMoreEmp(@Param("emps") List<Emp> emps);
}
<insert id="insertMoreEmp">insert into t_emp values<foreach collection="emps" item="emp" separator=",">(null,#{emp.empName},#{emp.age},#{emp.gender},null)</foreach>
</insert>
@Test
public void test2(){SqlSession sqlSession = SqlSessionUtil.getSqlSession();DynamicSQLMapper mapper = sqlSession.getMapper(DynamicSQLMapper.class);Emp emp1 = new Emp(null,"小明1",21,"男");Emp emp2 = new Emp(null,"小明2",22,"男");Emp emp3 = new Emp(null,"小明3",23,"男");List<Emp> emps = Arrays.asList(emp1, emp2, emp3);mapper.insertMoreEmp(emps);sqlSession.close();
}

4.5.2批量删除

void deleteMoreEmo(@Param("empIds") Integer[] empIds);
<delete id="deleteMoreEmo">delete from t_emp where emp_id in<foreach collection="empIds" item="empId" separator="," open="(" close=")">#{empId}</foreach>
</delete>
@Test
public void test3(){SqlSession sqlSession = SqlSessionUtil.getSqlSession();DynamicSQLMapper mapper = sqlSession.getMapper(DynamicSQLMapper.class);Integer[] empIds = new Integer[]{6,7};mapper.deleteMoreEmo(empIds);sqlSession.close();
}

4.6SQL片段

内容来源于黑马教程,仅作为学习笔记参考


http://www.mrgr.cn/news/26806.html

相关文章:

  • ingress对外服务
  • 关于SAP标准委外(带料外协)采购订单信息
  • 93-java 直接内存
  • 第158天:安全开发-Python-Socket编程反弹Shell分离免杀端口探针域名爆破
  • postman接口关联
  • SAP自动化-ME12批量更新最后一行的价格
  • C++:模板——详解函数模板与类模板
  • AI绘画:科技赋能艺术的崭新时代
  • 【Google Chrome Windows 64 version及 WebDriver 版本】
  • MySQL5.7-虚拟列
  • 管理者须知!员工上班玩游戏怎么办?如何有效管理员工上班玩游戏行为?
  • Djourney新手入门基础,AI摄影+AI设计+AI绘画-AIGC作图
  • TCPIP网络编程(尹圣雨)UDP 轮流收发消息(windows)
  • 春日教育技术:SpringBoot在线视频教学
  • NVM 安装 + 配置淘宝镜像
  • 【大模型专栏—进阶篇】语言模型创新大总结——“后起之秀”
  • Python 内置的一些数据结构
  • 轧钢测径仪对热轧产线实现温度系数自动修正!
  • 从头开始学MyBatis—02基于xml和注解分别实现的增删改查
  • Springboot项目打war包运行及错误解决