MyBatis 优秀的轻量级持久层框架从入门到应用实战

课程简介和目标

学习过JDBC的同学都会有所感受,原生JDBC技术实现对持久层数据操作有着诸多问题.

1 编码繁琐,步骤多

2 手动处理结果集和实体类映射关系比较麻烦,尤其是多表查询

3 没有较好的性能优化手段. 如连接池,缓存,延迟加载等等

4 没有现成的增删改查方法的封装,需要我们自己借助反射和反省等进行封装

5 SQL语句以字符串形式存在于JAVA代码之中, SQL语句和JAVA代码的耦合度太高

6 手动控制事务处理,容易出错

7 操作不同的关系型数据库编码有差异,需要比较细致的修改

... ...

综上所述,JDBC我们认为它仅仅是一种比较基础和原始的技术,在实际开发中我们基本不会直接使用.只能作为我们开发的基础知识来学习,那么实际开发中用什么? 就是比较好的持久层框架. 目前市场上应用最多的,就是MyBatis框架.MyBatis 是一款优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 不足。 体现但不限于如下方面

1 编码简单,步骤少,项目一旦大家完毕,编码非常简单

2 可以使用简单的 XML 或注解来配置和映射原生信息,不必手动处理结果集映射关系

3 配合连接池和缓存技术,再加上延迟加载,性能优异

4 SQL语句以配置文件形式定义,解除了和JAVA代码的耦合

5 事务控制可以手动, 也可以在SSM整合时,交给Spring进行控制

6 操作不同的关系型数据库,JAVA编码基本无需调整

7 轻量级半自动映射数据库框架,系统资源消耗相对低

8 可以与优秀的连接池,spring进行便捷整合

9 后期可以拓展MyBatisPlus,甚至可以在业务层提供了基本CURD的功能封装

10 动态SQL

... ...

简单的说: MyBatis非常优秀,实际开发中一定会应用到的持久层框架技术,必须好好学习

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第1张图片

目标:

1 认识持久层框架和ORM,MyBatis项目搭建

2 熟悉MyBatis开发流程和配置文件的编写

3 能够在MyBatis代理模式下开发持久层代码

4 熟练掌握动态SQL和MyBatis多表关联查询

5 掌握MyBatis注解,缓存,延迟加载等相关技术

基于XML和实体映射数据

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第2张图片

MyBatis框架架构

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第3张图片

MyBatis 代理模式

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第4张图片

课程大纲

  • 第一章 MyBatis初识和项目搭建

  • 认识框架,ORM和MyBatis简介

  • MyBatis项目创建导入相关依赖

  • MyBatis执行流程和配置文件开发

  • 第二章 MyBatis配置详解

  • 关于日志的使用

  • 事务相关配置

  • mapper.xml的加载方式

  • 实体类别名处理

  • 外部属性配置文件存储链接数据库四要素

  • 第三章 了解MyBatis在传统DAO模式下的开开发

  • SqlSession封装的三个查询方法

  • SQL参数的传递方式

  • SqlSession实现CURD的API

  • 第四章 熟练掌握MyBatis代理模式下的开发

  • Mapper代理模式开发流程

  • 代理模式下参数传递问题

  • 模糊查询和主键自增回填

  • 代理模式下实现所有DML操作

  • 第五章 熟练掌握动态SQL

  • 动态SQL中if和where的使用

  • 动态SQL中choose set 和trim的使用

  • 动态SQL bind sql foreach的使用

  • 第六章 MyBatis多表关联查询

  • 自动和手动处理映射关系

  • 一对一,一对多,多对多映射关系配置

  • 级联查询和SQL语句间调用

  • 立即加载和延迟加载

  • 第七章 缓存和逆向工程

  • 一级缓存

  • 二级缓存

  • 三方缓存

  • 逆向工程

MyBatis执行流程

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第5张图片

MyBatis半自动持久层框架

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第6张图片

SQL与代码分离,SQL由开发人员开发控制

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第7张图片
MyBatis 优秀的轻量级持久层框架从入门到应用实战_第8张图片

**基于注解方式的开发 **

MyBatis 优秀的轻量级持久层框架从入门到应用实战_第9张图片

你可能感兴趣的:(MyBatis,数据库)