Mybatis(三)——一对一映射、动态 SQL(include、if、where、set、trim、foreach、choose标签)、Cache(一级缓存和二级缓存)、SSM整合

Mybatis(三)——一对一映射、动态 SQL(include、if、where、set、trim、foreach、choose标签)、Cache(一级缓存和二级缓存)、SSM整合

一、一对一映射

1、一对一映射

比如每个班级都对应一个年级:

实体类:
在这里插入图片描述

在这里插入图片描述

然后是 mapper 文件:
在这里插入图片描述
然后测试结果:
在这里插入图片描述

2、一对一映射(懒加载)

在这里插入图片描述

二、动态 SQL

1、介绍动态 SQL

MyBatis的映射文件中支持在基础SQL上添加一些逻辑操作,并动态拼接成完整的SQL之后再执行,以达到SQL复用、简化编程的效果。

sql 优化的一个策略是:取什么数据就用什么字段,不要轻易的 select * ,这样会消耗数据库的性能。

databaseID :如果不确定用什么数据库,比如可能是 sql,或者 oracle,那就可以使用这个,不过一般都用不上。

2、include 标签

可以单独定义一个 sql 片段,然后需要用到这个片段的时候就通过 include 来引用这个片段:
在这里插入图片描述

3、if 标签

学代码学到这里的不会还不知道 if 代表的是什么意思吧?

接口:
在这里插入图片描述
mapper 文件:
在这里插入图片描述

还有一种简化的笨办法:
在这里插入图片描述

4、where 标签

上图中的办法也不是很好,因为要写多一个判断,所以可以通过 where 标签来完成:
在这里插入图片描述

5、set 标签

set 标签是做更新的时候用的。

核心是,用户传了哪些字段,就更新哪些字段,不可能用户只想更新某一个字段,就传了某一个字段,而其他字段都为 null ,这显然不合理。所以有了 set 标签:
在这里插入图片描述
在这里插入图片描述

6、trim 标签

trim 标签是功能的集大成者,有很多前面标签的功能。
在这里插入图片描述
在这里插入图片描述
trim 的用法不止上面这些,还有很多。比如有前面或者后面有多余的,不确定要不要加的标签都可以用 trim 标签。

7、foreach 标签

在这里插入图片描述

比如传进一组 id,根据这些 id,一个个的查出他们的数据:

接口:
在这里插入图片描述
mapper 文件:
在这里插入图片描述
测试代码:
在这里插入图片描述

另外一个用法,可以用在批量插入中:
在这里插入图片描述

8、choose 标签

choose 标签相当于 java 代码中的 switch 的用法:
在这里插入图片描述

choose 标签用的很少,if 标签用的更多。

三、Cache(缓存)

1、缓存介绍

在这里插入图片描述

2、一级缓存

a、相同 sqlsession

在这里插入图片描述

可以通过查看日志 sql 语句执行了几次验证:
在这里插入图片描述

在这里插入图片描述
可以发现,只执行了一次 sql 语句,所以一级缓存是默认开启的

b、不同 sqlsession

如果 sqlsession 不同的话,是用不了缓存的
在这里插入图片描述
可以通过查看日志发现,sql 语句执行了两次。

一级缓存使用的前提是:同一个 sqlsession,

3、二级缓存

在这里插入图片描述

一般来说 sqlSessionFactory 只有一个实例,不会变。

二级缓存有点类似于全局缓存。使用到这个的概率很低。

全局缓存开启:
在这里插入图片描述
上图中这个东西一般默认开启;要手动开启的在下图(开启也很容易,在 mapper 文件中):
在这里插入图片描述

开启了之后,用到的实体类都需要序列化!

总例子:
在这里插入图片描述

要缓存也可以通过 commit():
在这里插入图片描述

四、SSM整合

Spring + Spring MVC + mybatis 整合。

一步一步来,先配置 Spring + MVC,没问题了再配置 mybatis 。

1、先配 Spring + MVC

pom.xml 文件:
在这里插入图片描述

然后是 java 代码文件:
在这里插入图片描述
在这里插入图片描述
然后是 Spring 配置文件:
在这里插入图片描述

Spring MVC 配置文件:
在这里插入图片描述

然后是 web.xml 配置文件:
在这里插入图片描述
到此为止,一个简单的 Spring + MVC 就算整合完毕,测试也没有问题。

2、配置 mybatis

首先导入依赖:
在这里插入图片描述
然后是资源路径:
在这里插入图片描述
接着就数据库了:
在这里插入图片描述

然后是 mapper 和 model:
在这里插入图片描述

最后就是在 Spring 里面整合 mybatis:
在这里插入图片描述

在这里插入图片描述

然后到此为止,mybatis 在这里面配置这两个,就算完成了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值