一、Mybatis的架构(执行流程)


二、Mybatis的介绍(扯皮)
https://www.jianshu.com/p/30b0b27710b0
三、集成


四、使用
1、传统方式
(1)、创建对象,要与表中字段保持一致

(2)、编写sqlMapConfig.xml

(3)、编写Mapper.xml

(4)、读取配置文件

(5)、创建sqlSessionFactory

(6)、创建sqlSession

(7)、在Mapper.xml编写sql语句

(8)、sqlSession执行sql并返回结果



2、接口式编程(推荐)
(1)、创建Mapper接口(Dao层接口)

(2)、Mapper.xml与Mapper接口进行绑定

(3)、通过sqlSession.getMapper来创建接口的代理对象

五、mybatis与hibernate的区别?
首先,这两个框架都属于ORM框架,hibernate属于完全对象关系映射,可以用hql或者用方法来去代替原生sql,与数据库无关性较大。mybatis属于半完全对象关系映射,依旧引用sql语法,但是以xml的形式去配置sql语句。hibernate,拥有一套属于自己原创的hql和方法语法,无形中增加了学习的成本,上手难度较大,而且适合开发较大的工程。mybatis,相对较为简单,依旧沿用sql,与数据库关联性较强。但是我觉得,两种框架各有优劣,需要结合自己的项目业务来搭配使用,以达到较好的效果。
六、mybatis的主配置文件
configuration.xml
(1)、properties标签


(2)、settings标签

(3)、typeAliases标签(别名处理器)(不推荐使用)




(4)、typeHandlers标签

(5)、plugins标签

(6)、environments标签

(7)、databaseIdProvider标签


(8)、mapper标签引入映射文件


mapper.xml
(1)、作用:书写sql语句
(2)、标签:提供了基本的数据库操作标签

(3)、增删查改基本操作
a:自动提交事务配置

b:

c:主键id获取

(4)、多参
当你的参数只有一个时,mybatis不插手参数取值,当参数是多个的时候,会插手参数取值.
解决办法:
1、封装成对象进行参数取值(POJO类)


2、命名参数(推荐)


3、封装成Map


4、TO


(5)、返回resultType
resultType:
1、简单类型(基本数据类型)

2、POJO类

3、POJO的包装类


(6)、手动映射resultMap

(7)、参数处理



(8)、集合的返回
1、list


2、map
(2.1)、map封装单个对象



(2.2)、map封装多个对象


