MyBatis简介 :
MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC
代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java
POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。
MyBatis的基本概念
1.Mapper配置:可以使用基于xml的Mapper配置文件来实现,也可以使用基于java注解的MyBatis注解来实现,甚至可以直接用MyBatis提供的API来实现。
2.Mapper接口:自行定义一个数据操作的接口,类似于通常说的DAO接口,MyBatis会自动为Mapper接口创建动态代理对象。
3.Executor:Mybatis中所有的Mapper语句的执行都是通过Excutor进行,Executor是MyBatis的一个核心接口。
4.SqlSession:执行持久化草所的对象,类似于JDBC中的Connection对象。可以使用SqlSession实例直接执行被映射的SQL语句。
5.SqlSessionFactory:单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory对象的实例通过SqlSessionFactoryBuilder对象获得。
MyBatis工作流程
- 加载Mapper配置的SQL映射文件或SQL注解
- 通过读取配置文件,创建会话工厂SqlSessionFactory
- 根据会话工厂创建会话对象Sqlsession,绘画对象是一个接口,包含CRUD数据库操作的方法
- 创建Executor接口帮助会话对象执行操作
- 执行器处理的SQL信息封装到MappedStatement对象中
- 操作数据库,返回结果,结束流程
Spring中使用Mybatis
- 创建项目选择依赖、依赖配置
- Mybatis的公共属性配置peoperties相关配置等
- 表的映射xml文件配置
- java类和接口的定义
MyBatis简单配置
映射文件的元素
<select>: 映射查询语句,可自定义参数,返回结果集等
<insert>: 映射插入语句,执行返回一个整数,代表插入的条数
<update>: 映射更新语句,执行返回一个整数,代表更新的条数
<delete>:映射删除语句,执行返回一个整数,代表删除的条数
<sql>: 用于定义一部分SQL,然后可被其他语句引用此SQL
<cache>: 给定命名空间的缓
<cache-ref>: 其他命名空间缓存配置的引用
<resultMap>: 用来描述如何从数据库结果集中来加载对象
SQL语句日志输出配置
1.SpringBoot默认使用logback记录日志
2.MyBatis的执行SQL也可以使用Logback记录
(1)在properties文件中配置logback配置文件的位置:logging.config = classpath:logback.xml
(2)在logback.xml文件中加入MyBatis SQL的输出配置
MyBatis的注解
注解版最大的特点就是具体的SQL文件需要写在Mapper类中,取消了Mapper的xml配置。
数据库操作的注解:
@Select: 查询时使用
@Insert: 插入数据库时使用,直接传入实体类会自动解析属性到对应的值
@Update: 处理数据更新
@Delete: 处理数据删除