6/12 MyBatis 自增长查询、延迟加载、缓存、注解、逆向工程(自动生成增删改查)

查询当前栏目的所有子孙栏目。

子孙栏目:子栏目的子栏目就是孙栏目

实体:

在这里插入图片描述
这里的pid就是父节点
在这里插入图片描述
在这里插入图片描述
这个list 就是子节点又包含的子节点
在这里插入图片描述
这样就形成了递归。上面的sql语句一直循环到查询不到为止
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

延迟加载:

延迟加载的前提:sql语句要分开写

分类:

直接加载 :
有关联关系的,在查询的时候会一次性的把联接的表的内容都查出来。即使是多条查询语句,分开写,也是一次性执行。

侵入式延迟:
第一次执行,只执行第一条语句,一旦要使用查询对象的属性(无论第一次的查询结果中是否存在这个属性),就会执行其他查询。(还是会执行)

深度延迟:最推荐的延迟方式
用到这个对应的属性才会执行对应的查询,不用就不会执行。

实例:

正常执行两次查询,执行了两句sql。
在这里插入图片描述
注释之后,发现不用显示这个信息,但是还是会执行这个sql,会影响效率。
在这里插入图片描述

解决方法:settings
在这里插入图片描述
配置之后,加了断点,会发现执行第一句的时候 只执行了一句sql。这就是
侵入式延迟,还是会执行其他的sql
在这里插入图片描述

深度延迟:
关键字:AggressiveLazyLoading: (不要拼错,下图就拼错了)
默认为真 侵入式延迟。
深度延迟 改成false
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

缓存

    缓存的优点:数据一般都储存在数据库中,用户第一次请求数据,必须要从数据库中查询。

如果有缓存,查询的数据会放在缓存里面。下次再查询的时候,若有同样的数据,会先去缓存里面找,
缓存中有就直接使用缓存数据。缓存没有最后再查数据库。

缓存数据的存储位置:内存,硬盘文件

一级缓存

MyBatis 一级缓存默认开启,不能关闭。
依赖于sqlSession, sqlSession一旦关闭,一级缓存的数据就没有了

在这里插入图片描述

二级缓存

http://www.woniuxy.com/playvideo/18104
在这里插入图片描述

缓存 的底层是个Map,Key:查询依据:Value就是依据。
清空缓存,就是将对应的value值赋值为空,没有删除Map中该条数据。
在这里插入图片描述

二级缓存的总开关,默认为true 若设置为false,在次配置文件里面开缓存就没用了。
在这里插入图片描述
次级配置,若主级关了这里开就没用了。
在这里插入图片描述

第三方插件:ehcahe
第三方的二级缓存插件
jar包: 核心jar包(核心基本功能) 整合jar包(MyBatis对ehcache的整合包。)

lib:核心jar包 :直接拖到项目的lib里面
红圈圈到的:依赖包
在这里插入图片描述

解压这个core,获取配置文件。
在这里插入图片描述
指定使用ehcache 来管理。
在这里插入图片描述

ehcache不需要序列化(实体类实现序列化接口的操作) 就可以运行。(自带的二级缓存需要序列化)

默认存放在这个位置。
在这里插入图片描述

在这里插入图片描述


注解形式:可以代替xml文件

仅作了解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逆向工程:

MyBatis 官方提供了一个开源项目,可以自动生成单表的增删改查。多表的功能没有

修改配置文件
JDBC的四大参数
在这里插入图片描述

实体类对应的包名
在这里插入图片描述
映射文件的包名
在这里插入图片描述
接口所在的包名
在这里插入图片描述
指定有哪些表
在这里插入图片描述
执行主方法
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值