Mybatis

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


Mybatis_第1张图片
Mybatis_第2张图片

二、Mybatis的介绍(扯皮)

https://www.jianshu.com/p/30b0b27710b0


三、集成

Mybatis_第3张图片
Mybatis_第4张图片

四、使用

1、传统方式

(1)、创建对象,要与表中字段保持一致

Mybatis_第5张图片

(2)、编写sqlMapConfig.xml

Mybatis_第6张图片

(3)、编写Mapper.xml

Mybatis_第7张图片

(4)、读取配置文件

(5)、创建sqlSessionFactory

(6)、创建sqlSession

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

Mybatis_第8张图片

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

Mybatis_第9张图片

2、接口式编程(推荐)

(1)、创建Mapper接口(Dao层接口)


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

Mybatis_第10张图片

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

五、mybatis与hibernate的区别?

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

六、mybatis的主配置文件

configuration.xml

(1)、properties标签

Mybatis_第11张图片
Mybatis_第12张图片

(2)、settings标签

Mybatis_第13张图片

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


Mybatis_第14张图片
Mybatis_第15张图片

(4)、typeHandlers标签


Mybatis_第16张图片

(5)、plugins标签

Mybatis_第17张图片

(6)、environments标签

Mybatis_第18张图片

(7)、databaseIdProvider标签

Mybatis_第19张图片
Mybatis_第20张图片

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

mapper.xml

(1)、作用:书写sql语句

(2)、标签:提供了基本的数据库操作标签

Mybatis_第21张图片

(3)、增删查改基本操作

a:自动提交事务配置

b:

c:主键id获取

(4)、多参

当你的参数只有一个时,mybatis不插手参数取值,当参数是多个的时候,会插手参数取值.

解决办法:

1、封装成对象进行参数取值(POJO类)

Mybatis_第22张图片

2、命名参数(推荐)


3、封装成Map

Mybatis_第23张图片

4、TO

Mybatis_第24张图片
Mybatis_第25张图片

(5)、返回resultType

resultType:

1、简单类型(基本数据类型)

2、POJO类

3、POJO的包装类

Mybatis_第26张图片

(6)、手动映射resultMap

Mybatis_第27张图片

(7)、参数处理

Mybatis_第28张图片

(8)、集合的返回

1、list

2、map

(2.1)、map封装单个对象


(2.2)、map封装多个对象

Mybatis_第29张图片

http://blog.csdn.net/charles_7c/article/details/64520250

https://www.jianshu.com/p/30b0b27710b0

你可能感兴趣的:(Mybatis)