Picture Picture Picture Picture Picture Picture Picture

mybaties 链式编程以及mybatis处理 原理深入

连式编程教程

基本概念

上次写的一个博客丢失了 现在只能大致截一下图 不会太详细

DTD约束 (mapper映射xml+全局配置xml)

全局配置XML标签

propertis (导入外部配置文件)


stting 全局设置标签

设置项很多(缓存、驼峰命名、jdbctype等)

typeAliases java类别名

java全类名起一个别名

注意:默认别名大小写并不敏感
批量包取别名+类其单独别名

TypeHealder 类型处理器

数据库类型转化为 java类型的映射
默认的类型转化

plugins 插件

拦截四大组件的方法前后进行处理

enviroments 环境

配置多个环境默认开始其中一个 (连接池。连接信息 、事务处理 )

databaseldProviudr 多数据库支持

不同的数据库执行不同的sql方法 数据库起一个别名

mapper 映射资源配置


批量注册

mapper映射文件标签 (数据库需要支持自增主键比如:mysql)

自增主键设置


主键放入 返回值的id属性

序列主键设置(不支持自增主键 比如:orcle )


springboot进行mybaties测试

参数处理

多参数指定默认生成map的key

不同类型取参数值


原理

获取mapper对象(是一个代理对象)

调用(代理对象)方法


处理类为MapperProry

方法包装类的执行方法


参数转化方法





注意:parm是是parm1开始的

$和#(推荐) 区别

{}的更多用法

null值处理



所以可能传null可能出现无效的类型 因为数据库不支持这个类型


处理方式
第一种

第二种

特殊类型返回值处理


map的返回

单条记录封装map resultType=“map”
多条记录封装map resultType=“封装类型” + 注解是[id,,]属性封装为key

多条记录封装list resultType=“封装类型”

自定义返回值规则 resultMap

在关联查询(多表查询个含有对象关系封装)上的应用

第一种 级联属性封装成结构集

第二种 association定义关联对象 (可以使用延迟加载+分布查询)

第三种 collection定义集合对象 可以使用延迟加载+分布查询)

第四种 dicscriminator鉴别器 (根据某列的取值情况采用不同的封装规则)

分布查询

如果只是查但是没有用到的话 就不会去查详细信息 (用到的时候才会查 更详细的信息(子查询) )

设置 延迟加载 开启配置



具体列设置

区别 :一个是否开启懒加载 一个规定什么时候去懒加载

association (相当于一个sql物理分为了几个子查询)

collection

posted @ 2020-09-16 18:18  云行雨步  阅读(644)  评论(0编辑  收藏  举报
Title - Artist
0:00