1.Mybatis全局配置文件
文件结构如下:
configuration配置
properties属性
setting设置
typeAliases类型命名
typeHandler类型处理器:Mybatis在预处理语句中设置一个参数,还是从结果取值,都会用类型处理器将获取的值以合适方式转换成java
objectFactory 对象工厂
plugins插件
environments环境:配置多种环境
environment环境变量:指定具体环境
id:指定当前环境的唯一标识
transactionManager
type: JDBC|MANAGED|自定义
JDBC:使用了JDBC的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围
MANAGED:不提交或回滚一个连接,让容器来管理事务的整个生命周期
自定义:实现transactionFactory接口,type=全类名/别名
datasource:
UNPOOLED:不使用连接池
POOLED:使用连接池
JNDI:在EJB或应用服务器这类容器中查找指定的数据源
自定义:实现DataSourceFactory接口,定义数据源的获取方式
transactionManager事务管理器
databaseidProvider数据库厂商标识
mappers映射器
1.用来在mybatis初始化的时候,告诉mybatis需要引入哪些Mapper映射文件
2.mapper逐个注册SQL映射文件
resource:引入类路径下的文件
url:应如网络路径或是磁盘路径下的文件
class:引入mapper接口
有SQL映射文件,要求Mapper接口与SQL映射文件同名同位置
没有SQL映射文件,使用注解在接口的方法上写SQL语句
参数传递
参数传递方式:
1.单个参数,可以接受基本类型,对象类型
2.多个参数,会被重新包装成一个Map传入,Map的key就是param1,param2或0,1,值就是参数的值
3.命名参数,为参数使用@Param起一个名字,Mybatis就会将这些参数封装进map,key就是我们自己指定的名字
4.POJO,当这些参数属于我们业务pojo时,我们直接传递pojo
5.Map 封装参数为map,直接传递
6.Collection/Array,会封装成一个map传入,Collection对应的key是collection,Array对应的key是array,若为LIst集合,key还可以是list
参数的获取方式:
1.#{key}:获取参数的值,预编译到SQL中,安全
2.${ksy}:获取参数的值,拼接到SQL中,有SQL注入问题
select查询的几种情况
resultType 自动映射 :autoMappingBehavior默认是PARTIAL,开启自动映射的功能,唯一要求是列名和javaBean属性名一致
resultMap 自定义映射:
id:用于完成主键值的映射
result:用于完成普通列的映射
association:一个复杂的类型管理,许多结果将包成这种类型
collection:复杂类型的集
1.id&result
property:映射到列结果的字段或属性
column:数据表列名
2.association
属性可能是一个对象,我们可以使用联合查询,并以级联属性的方式封装对象,使用association标签定义对象的封装规则
association分步查询
association分步查询延迟加载
3.collection
collection分步查询
collection分步查询延迟加载