七.MyBaits基本操作,为什么session.commit()可以引起事物提交?ResultMap结果映射,执行添加后返回自增列的值,多条件查询,智能标签,工具类...

本文解析了MyBatis框架中的关键机制,包括session.commit()如何触发事务提交、ResultMap的作用及其实现方式、如何获取插入操作后的自增ID、多条件查询的实现方法以及MyBatis提供的智能标签如where、if、choose、foreach等的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.为什么session.commit()可以引起事务的提交?

首先打开commit()源码,ctrl+H打开它的实现类DefaultSession,找到它的commit方法

ctrl+左键executor,进入它的接口并打开它的实现类BaseExecutor

 

在最底层的commit()方法里边进行了事务的提交,所以SqlSession.commit()方法可以引起事务的提交

 

2.ResultMap结果映射

为什么需要ResultMap?

因为DB中的Table的列名和Java对象中的属性名不一致时需要手工映射

ResultMap实现代码

注:select标签中的resultMap和resultType不允许同时出现

 

3.执行添加后返回自增列的值

首先在insert节点中添加一个selectKey节点配置如下

属性keyProperty的值要和实体类中的id属性一致

 

4.多条件查询

多条件查询可以使用Map集合查询,也可以使用索引号查询

实体类实现代码

 

 5.智能标签

智能标签分为:where ,if ,choose,foreach

where if类似于多重if判断

choose类似于switch结构

foreachArray类型

foreach<自定义>

foreachList类型

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易学长~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值