四、MyBatis框架介绍及使用

1、什么是MyBatis

1.MyBatis就是一个来封装jdbc的持久层框架,它和hibernate都属于ORM层,但是具体的说,hibernate是一个完全ORM框架,而MyBatis是一个不完全的ORM框架。

2.MyBatis让程序员只关注sql本身,而不需要去关注如连接的创建、statement的创建等操作。

3.MyBatis会将输入参数、输出结果进行映射。

2、MyBatis的框架原理

2.1分析结论

1.Mybatis配置文件,包括MyBatis全局配置文件和MyBatis映射文件,其中全局配置文件配置了数据源、事务等信息;映射配置文件配置了SQL执行相关的信息。

2.MyBatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory,既会话工厂。

3.通过SqlSessionFactory,可以创建SqlSession既会话。MyBatis是通过SqlSession来操作数据库的。

4.SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)。

5.Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。其中输入参数和输出结果的映射类型包括java的简单类型、hashMap集合对象、POJO对象类型。

3、入门程序

3.1需求

3.2环境准备

idk

ide

MyBatis

数据库

3.3下载MyBatis

MyBatis的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 

3.4数据库脚本初始化

3.5工程搭建

3.6代码实现

3.6.1创建PO类

3.6.2创建全局配置文件

在config目录下,创建SqlMapConfig.xml文件,该名称不是固定不变的。

需求开发(根据用户ID查询用户信息)

3.6.3映射文件

在config目录下,创建User.xml(这种命名规范是由ibatis遗留下来的)

3.6.4在全局配置文件中加载映射文件

3.6.5测试

4、开发方式

4.1MyBatis开发dao的方式(既开发dao接口和dao实现类)

SqlSessionFactory,它的生命周期,应该是应用范围,全局范围只有一个工厂,使用单例模式来实现这个功能。与spring集成之后,由spring来对其进行单例管理。

SqlSession,它内部含有一块数据区域,存在线程不安全的问题,所以应该将sqlsession声明到方法内部。

测试

4.2Mapper代理的开发方式(既开发mapper接口(相当于dao接口))

Mapper代理的开发规范

1.mapper接口的全限定名要和mapper映射文件的namespace值一致

2.mapper接口的方法名称要和mapper映射文件的statement的id一致

3.mapper接口的方法参数类型要和mapper映射文件的statement的parameterType的值一致,而且它的参数是一个

4.mapper接口的方法返回值类型要和mapper映射文件的statement的resultType的值一致

Mapper接口

Mapper映射文件

加载映射文件

测试

5、MyBatis整合spring

1.数据信息交给spring管理

2.SqlSessionFactory交给spring进行单例管理

3.由spring来管理原始dao的实现类或者mapper代理的代理类

工程搭建:

Mysql的驱动包

MyBatis的核心包和依赖包

MyBatis和spring的整合包

spring的包

dbcp数据库连接池包

https://blog.csdn.net/qq_22583741/article/details/79450343

原文地址:https://www.cnblogs.com/arrows/p/10368897.html