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