JavaEE实战精粹:MyBatis+Spring+SpringMVCpdf电子书提取码

简介: 主要讲解Java EE框架MyBatis、Spring和Spring MVC的核心开发技术,帮助读者进行“精要”式的学习和项目实战,同时汲取Java EE的思想,并最终将其灵活运用到实际工作中。

*文中代码字体版权说明

第1章

MyBatis 3核心技术之必备技能

本章目标:

了解MyBatis核心对象的生命周期

使用SqlSession对象或Mapper接口操作数据库

MyBatis结合ThreadLocal类进行CURD的封装

手动搭建开发环境

1.1

什么是框架

MyBatis是一个操作数据库的框架,那什么是框架?框架就是软件功能的半成品,框架提供了一个软件项目中通用的功能,将大多数常见的功能进行封装,无须自己重复开发,框架提高了开发及运行效率。在软件公司中,大多数情况是使用框架开发软件项目。

1.2

什么是对象关系映射

MyBatis是一个基于“ORM”的框架,ORM的全称是对象关系映射(Object Relational Mapping)。

对象(Object)就是Java中的对象,关系(Relational)就是数据库中的数据表,基于“ORM”的框架是把数据在对象和关系之间进行双向转换。

ORM的细节可以从3个方面来介绍。

(1)1个类对应1个表。

(2)1个类的对象对应表中的1行。

(3)1个类的对象中的属性对应1个表中的列。

ORM映射关系如图1-1所示。

MyBatis框架可以将Java类中的数据转化成数据表中的记录,或者将数据表中的记录封装到Java类中,过程如图1-2所示。

▲图1-1 ORM映射关系

图1-2 ORM框架映射的主流程

从图1-2的过程来看,程序员不再直接使用JDBC对象访问数据库,而是以面向对象的方式来使用实体类,对实体类进行的增加、删除、更新和查询操作都会由ORM框架转化成对数据库的增加、删除、更新和查询操作。

ORM框架内部的核心技术的原理其实就是JDBC和反射,这个技术是由ORM框架,也就是MyBatis来进行封装的。

1.3

MyBatis的优势

一个事物一定要有优势才不会被淘汰,软件技术也是如此。

MyBatis是现阶段操作数据库的主流框架,此框架的主要作用就是更加便捷地操作数据库。它具有很多优势,和程序员密切相关的优势主要体现在如下7个方面。

(1)ROW行与Entity实体类双向转换:可以将数据表中的ROW行与Entity实体类进行互相转换,比如将ResultSet对象返回的数据自动封装到Entity实体类或List中,或将Entity实体类中的数据转换成数据表中新的一行ROW。

(2)SQL语句与Java文件分离:可以把SQL语句写到XML文件中,目的是将SQL语句与Java文件进行分离,有利于代码的后期维护,也可使代码的分层更加明确。

(3)允许对SQL语句进行自定义优化:因为MyBatis框架是使用SQL语句对数据库进行操作的,所以可以单独地对SQL语句进行优化,以提高操作效率。而Hibernate框架却做不到这一点,所以MyBatis相比Hibernate框架就具有很大的优势,这也是现阶段大部分软件公司逐步用MyBatis替换掉Hibernate框架的主要原因。

(4)减化DAO层代码:使用传统的JDBC开发方式时,需要写上必要的DAO层代码以对数据库进行操作,但这样的代码写法在软件开发的过程中非常不便,因为多个DAO类中的大部分JDBC代码是冗余的,所以MyBatis解决了这个问题。使用MyBatis做查询时可以自动将数据表中的数据记录封装到实体类或Map中,再将它们放入List进行返回。这么常见而且有利于提高开发效率的功能MyBatis都可以自由方便地处理,不需要程序员写底层的实现代码,MyBatis就可以完全进行封装。从此观点来看,使用MyBatis框架去开发软件非常方便、快捷,省略了大量冗余的JDBC代码,MyBatis把常用的JDBC操作都进行了封装,进而提高开发效率,MyBatis框架很有使用上的必要性。

版权:人民邮电出版社