课程简介和目标
学习过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非常优秀,实际开发中一定会应用到的持久层框架技术,必须好好学习
目标:
1 认识持久层框架和ORM,MyBatis项目搭建
2 熟悉MyBatis开发流程和配置文件的编写
3 能够在MyBatis代理模式下开发持久层代码
4 熟练掌握动态SQL和MyBatis多表关联查询
5 掌握MyBatis注解,缓存,延迟加载等相关技术
基于XML和实体映射数据
MyBatis框架架构
MyBatis 代理模式
课程大纲
-
第一章 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半自动持久层框架
SQL与代码分离,SQL由开发人员开发控制
**基于注解方式的开发 **