1.环境搭建
1.1实体类
1.学生:
2.老师:
1.2 接口:
1.3 对应的mapper映射文件:
1.4 测试:
Mysql面试高频:
Mysql引擎
INnoDb原理
索引
索引优化
2.动态Sql
动态Sql就是根据不同条件生成不同的SQL语句
搭建环境:
CREATE TABLE `blog`(
`id` VARCHAR(50) NOT NULL COMMENT '博客id',
`title` VARCHAR(100) NOT NULL COMMENT '博客标题',
`author` VARCHAR(30) NOT NULL COMMENT '博客作者',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`views` INT(30) NOT NULL COMMENT '浏览量'
)ENGINE=INNODB DEFAULT CHARSET=utf8
创建一个基础工程:
1.导包
2.编写配置文件
3.编写实体类
4.编写对应的maooer接口和xml文件
2.1 if标签
- choose (when otherwise)标签 类似于switch。
-
- set标签
所谓的动态sql,本质还是sql语句,在sql层面执行逻辑代码。
2.2 sql片段
将一些功能的部分抽取出来,方便复用。
foreach: 对一个集合进行遍历,通常是在构建IN条件语句的时候
动态sql就是在拼接sql语句,只要保证sql的正确性。
建议:现在mysql中写出完整的sql,在对应的去修改成为sql。
3.缓存
3.1 什么是缓存
存在内存中的临时数据,将用户经常查询的数据放在内存中
减少和数据库的交互使用,减少系统开销
3.2 Mybatis缓存
一级缓存, 二级缓存
默认情况下,只有一级缓存(SqlSession级别的缓存,也称本地缓存)
二级缓存需要手动开启和配置,基于namespace的配置
一级缓存:
与数据库同一次会话查询到的数据会放在本地缓存中。
测试步骤:
1. 开启日志
2. 测试在一给session同时查两次相同的记录
3. 查看日志输出。
缓存失效的情况;
查询不同的东西
增删改操作,改变原来的数据,必定会刷新缓存
手动清理缓存
二级缓存:
cache开启
只要开启了二级缓存,在同一个Mapper下都会生效
所有的数据都会放到一级缓存,只有会话关闭,提交的时候才会到二级缓存。
目的:提高查询的效率