以前咱们详细地讨论了MyBatis背后的设计理念以及iBATIS框架是如何产生的。也说明了MyBatis是一个混合型解决方案,它从处理关系数据库的其余不一样方法那里借鉴了许多思想。那么MyBatis究竟是什么呢?html
MyBatis就是咱们一般所说的数据映射器。所谓映射器层,是用于在对象和数据库之间搬运数据,同时保证对象、数据库以及映射器自己都相互独立。数据库
0/RM工具将数据库表及其列映射为应用程序中的类及字段。或者说, 0/RM工具在数据库的元数据与类的元数据之间创建起了一种映射关系。app
MyBatis与0/RM不一样,它不是直接把类映射为数据库表或者说把类的字段映射为数据库列, 而是把SQL语句的参数与结果(也即输入和输出)映射为类。正如你将在本书的后续部分中学到 的,iBATIS在类和数据库表之间创建了一个额外的间接层,这就为如何在类和数据库表之间创建 映射关系带来了更大的灵活性,使得在不用改变数据模型或者对象模型的状况下改变它们的映射 关系成为可能。其实咱们这里讨论的这个间接层就是SQL。SQL这个额外的间接层使得iBATIS能够更好地隔离数据库设计和应用程序中使用的对象模型。这就使得它们二者之间的相关性降至最低。图展现了MyBatis如何使用SQL映射数据。框架
Person数据库设计 |
|
Personide |
identifier工具 |
|
IDspa |
firstName设计 |
|
FIRST NAMEhtm |
lastName |
直接映射 |
LAST一NAME |
middleName |
|
MIDDLE NAME |
hairColor |
|
HAIR COLOR |
height |
|
HEIGHT |
weight |
|
WEIGHT |
Person类 |
必须和PERSON表相匹配 |
图对象/关系映射
MyBatis的映射层其实就是SQL。MyBatis让你编写SQL语句。MyBatis负责在类 的特性和数据库表的列之间映射参数和结果。基于这个缘由,也考虑到与其余各类 各样的映射方式的区分,为避免混淆,MyBatis团队一般将所谓的“数据映射器”称为SQL映射器。如图2-2所示,iBATIS的映射层其实就是SQL。MyBatis让你编写SQL语句。MyBatis负责在类 的特性和数据库表的列之间映射参数和结果。基于这个缘由,也考虑到与其余各类 各样的映射方式的区分,为避免混淆,MyBatis团队一般将所谓的“数据映射器”称为SQL映射器 (SQL mapper)。
系列文章: