MyBatis是支持定制化SQL、存储过程以及高级映射的优秀持久层框架。MyBatis
避免了几乎所有的jdbc代码和手动设置参数以及获取结果集。MyBatis可以对配置和
原生Map使用简单的XML或注解,将接口和Java的Pojoscplain old Objects,普通的
Java对象映射成数据库中的记录。
MyBatis的功能架构分为:
API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操作
数据库,接口层一接到调用请求就会调用数据处理层来完成具体的数据处理;
数据处理层:负责具体SQL查找、SQL解析、SQL执行和执行结果映射等,它
主要的目的是根据调用的请求完成一次数据库的操作。
基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载
和缓存处理等,这些都是公用的东西,将它们抽取出来做最基础的组件,为上层的数
据处理提供最基础的支撑。
MyBatis优点:简单易学,本身就很小且简单,没有任何第三方依赖,最简单
安装只要两个*jar*文件外加配置几个SQL映射文件易于学习、易于使用,通过文档和
源代码可以比较完全的掌握它的设计思路和实现; 灵活、解除SQL与程序代码的耦合;
提供映射标签,支持对象与数据库的ORM字段关系映射。 提供对象关系映射标签,支
持编写动态SQL。
同时MyBatis的缺点是:编写SQL语句时工作量很大,尤其字段多关联表多时
更是如此,SQL语句依赖数据库,导致数据库的移植性差,不能更换数据库,框架还是
比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个框架底层数据库查询
实际还是要自己写的,工作量也比较大,而且不太容易适应快数据修改,二级缓存机制不佳。