Mybatis
2021-11-15 15:11:44 0 举报
AI智能生成
Mybatis框架
作者其他创作
大纲/内容
Mybatis核心包
MySQL驱动
junit
日志
Mybatis所需依赖
将数据库表字段映射到驼峰式命名的Java属性
mapUnderscoreToCamelCase
默认开启,使用延迟加载功能时需要关闭
小于等于3.4.1
默认关闭
大于3.4.1
aggressiveLazyLoading
开启延迟加载功能
lazyLoadingEnabled
settings
关联外部属性文件
properties
指定实体类所在包,让Mapper配置中可以使用简单类名
typeAlias
具体注册一个Mapper配置文件
mapper标签
指定Mapper配置文件所在包,全部注册
package标签
注册Mapper配置文件
mappers
配置Mybatis使用的环境,通常会转移到Spring配置
environments
Mybatis全局配置
简单数据类型
返回单个实体类
返回实体类的集合
实体类类型
Map类型
直接指定封装查询结果的实体类类型
resultType
column属性:指定字段名
property属性:指定属性名
id标签
result标签
映射实体类自身属性
association标签
javaType属性
分步查询:使用select属性
对一
collection标签
ofType属性
对多
映射关联属性
resultMap
查询:select标签
useGeneratedKey属性:设置为true表示使用数据库自增主键
keyProperty属性:指定实体类中接收自增主键值的属性
新增:insert标签
更新:update标签
删除:delete标签
基本增删改查操作
#{}:将来变成问号占位符
${}:将来拼字符串
给SQL传参
where标签
if标签
set标签
trim标签
sql标签
include标签
按照@Param注解指定的名字引用集合
如果使用了@Param注解
默认是collection或list或arg0
如果没有使用@Param注解
collection属性:指定要遍历的集合
item属性:遍历得到的每一个元素的名字
separator属性:循环体之间的间隔符号
open属性:整个foreach循环完成后,给总体字符串前面加的字符串
close属性:整个foreach循环完成后,给总体字符串后面加的字符串
index属性:遍历过程中的索引
数据库连接地址?allowMultiQueries=true
使用分号拼接多条语句,需要让连接数据库的地址后面附加参数
拼接多条SQL语句
foreach标签
choose/when/otherwise标签
动态SQL
type属性:指定具体的缓存产品,例如:EHCache
使用cache标签开启二级缓存功能
★Mapper配置
不需要写@Param注解,直接用#{}引用即可
单个简单类型参数
访问实体类的属性名
分支主题
使用@Param注解,#{}中是@Param注解指定的名称
零散简单类型参数
#{}中是Map的key
★Mapper接口
依赖Mybatis核心包
配置MBG插件
配置build
配置pom.xml
指定数据库连接信息
实体类
Mapper接口
Mapper配置文件
保存Java资源的包
配置MGB的配置文件
执行生成操作:执行MBG插件的目标
★逆向工程
耗费很大资源查询到的数据,应该缓存起来,节约资源
缓存思想
SqlSession范围有效
一级缓存
自带
依赖
EHCache自身配置文件
logback配置文件
在Mapper配置文件中cache标签中指定EHCache的缓存管理器全类名
EHCache
二级缓存
SqlSession提交事务后将一级缓存存入二级缓存
缓存
Configuration封装全局配置
MapperRegistry封装Mapper注册信息
MappedStatement封装了SQL语句
封装配置信息的对象
Executor
ParameterHandler
ResultSetHandler
StatementHandler
四个重要接口
使用动态代理介入四大接口对象的具体操作过程中
实现Interceptor接口创建自定义插件
插件机制
Mybatis底层是JDBC
PerpetualCache
一级缓存:BaseExecutor
二级缓存:CachingExecutor
缓存机制
原理
Mybatis
0 条评论
回复 删除
下一页