一.开发环境准备
1.下载Mybatis
输入网址:https://github.com/mybatis/mybatis-3/releases进入Mybatis官网,在这里可以下载到相关源码包和所需jar包。这里的jar包主要分为两类,一类是mybatis本身的jar包,另一类是lib文件夹下的。pdf文件是提供的api文档。我们用的时候只需要将mybatis的jar包导入到项目中即可。
2.Mybatis的基本组成
我们先来了解一下mybatis的核心组件:SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession,SqlMapper
SqlSessionFactoryBuilder:会根据配置信息或代码来生成SqlSessionFactory(工厂接口)
SqlSessionFactory:依靠工厂来生成SqlSession(会话)
SqlSession:是一个既可以发送sql去执行并返回结果,也可以获取mapper的接口
SqlMapper:由一个java接口和一个xml文件构成,需要给出对应sql和映射规则,负责发送sql去执行并返回结果
3.构建sqlsessionfactory
SqlSessionFactory是一个工厂接口,主要是用来产生SqlSession的,而SqlSession类似与jdbc的connection。mybatis提供两种创建SqlSessionFactory的方式:一种是xml配置方式,另一种是代码的方式。在这里主要讨论xml配置方式。
mybatis提供了2个SqlSessionFactory的类,一个是sqlsessionmanager ,另一个是defaultsqlsessionfactory。
这里通过读取xml配置文件,利用SqlSessionFactoryBuilder的build方法生成sqlsessionfactory
4.创建sqlsession
mybatis中sqlsession接口的实现类有两个,一个是defaultsqlsession,另一个是sqlsessionmanager
sqlsession的用途有两个:
1)获取映射器,让映射器通过命名空间和方法名找到对应的sql,发送给数据库执行并返回结果。
2)直接通过命名信息去执行sql返回结果。
5.映射器
映射器是有java接口和xml文件共同组成的,主要作用有以下几点:
1)定义参数类型
2)描述缓存
3)描述sql语句
4)定义结果和pojo的映射关系
同样映射器的实现方式也有两种:xml方式和代码方式。推荐xml方式。
java接口 包含3个方法
xml文件
6.生命周期
SqlSessionFactoryBuilder 主要是构建 SqlSessionFactory ,一旦完成构建也就失去存在的意义。
SqlSessionFactory 单例 mybatis应用的整个生命周期
SqlSession 数据库处理事务的过程中,线程不安全的
SqlMapper 一个sqlsession事务处理过程中