开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术:10.0简介】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/80/detail/15944
10.0简介
mybatis 原理及实现机制
这节课要讲的内容是关于 mybatis 的原理和实现的机制,所以花两节课时间来讲一
下 mybatis 的设计。
关于 mybatis 大家都很熟悉了,其是一个 orm 的框架,在所有的软件设计中间,通过前段时间的必做模块,应该能够感受到越偏底层的软件,其实它可以用面向对象的东西就越多,越偏业务的东西,其实用的就越少。
比如两个必做模块,很明显对于权限模块来说,基本上就是正常改查,所以除了按照规定的层次体系结构去写以外,没有特别多的可以发挥的空间。但是对于通用定时模块,因为它相对比较偏技术一点,跟业务没有太大的关系,所以会发现在通用
定时模块之间,会用到一些比较不常用的技术,会在设计上用到一到两个设计模式实现所要的东西。特别是因为通用定时的系统本身它就是要有一定的重用性,要能够去实现各种各样的定时业务,所以才会在设计上面发现其会有更多的要求。
而框架其实是在所有的系统中间、设计中间,面向对象设计用的最频繁、最多的一
个地方。
什么是框架,应该都非常熟悉,框架它是不能够自己独立运行的,框架里面设计和
实现的就是一些常用的、可以重用的代码。
但可以重用的代码,其实它是不能跑起来的,需要加上自己的东西,才能把它用到
一个具体的系统中间去。
Spring 、mybatis 的框架是这样,具体到 mybatis 的框架里面,知道它是用来做 ormping 的,所以意味着,在设计的时候需要去考虑到可以用在所有要去做
ormping 的场合,但是又要去考虑在每一个系统中间,需要 ormping 的对象,或者需要去操作数据的方式,又是不一样的。如何使得不一样的操作数据方式不会影响整个框架的代码,或者说,框架的代码如何以最小的代价来实现最大的灵活性,这都是在面向对象中间所要面对的问题。
mybatis 是一个相对比较成熟的框架,也是一个相对比较简单的框架。熟知 orm 的
框架其实有两种,一个是 mybatis,一个是 hibernate。
后者设计会比前者还要复杂,因为它里头不仅仅要管 ormping ,还要管着那些对
象在运行的时候,它跟数据库里头表记录的对应关系,以及改的对象它如何更新回去。
所以它的实现和设计会更加复杂,以相对比较简单的 mybatis 为例,来看一下熟悉
的 ormping 在 mybatis 是怎样实现的。