连式编程教程
基本概念
上次写的一个博客丢失了 现在只能大致截一下图 不会太详细
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

