MyBatis知多少(18)MyBatis系统

小型、简单系统html

小型应用程序一般只涉及单个数据库,只有一些至关简单的用户界面和领域模型。它的业务逻辑很是简单,甚至对一些简单的CRUD (Create, Read, Update, Delete:增查改)应用程序来讲可能根本就不存在。MyBatis之因此很是适合于小型应用程序,有3个缘由。程序员

第一,MyBatis自己就很小而且简单。它不须要服务器或者其余任何类型的中间件。根本不须要任何额外的基础设施。MyBatis也没有任何第三方依赖。MyBatis的最简安装只需 要2个JAR文件,总计不过375KB。除了须要配置几个SQL映射文件外,MyBatis不须要进行任何其余安装,所以只须要几分钟时间就能够拥有一个可工做的持久层了。数据库

第二,MyBatis不会对应用程序或者数据库的现有设计强加任何影响。所以,若是你有一个小型系统,且己经部分实现或者甚至己经发布了,那么依然能够轻松地重构持久层以使用MyBatis。 由于MyBatis很简单,因此它根本不会使得应用程序的架构过度复杂。而若是使用对象/关系映射工具或者代码生成工具,因为它们都对应用程序或数据库的设计作了某些假设,所以它们不可能 对应用程序的架构毫无影响。编程

最后,只要有过软件开发的经验,相信你就不会怀疑,任何一个小软件都几乎不可避免地有 一天会成长为一个大软件。全部成功的软件都有进一步成长的趋势。这是一件好事,而咱们接下 来想说的就是,MyBatis一样很是适合于大型系统,它甚至能够扩展以知足企业级应用程序的须要。性能优化

MyBatis之于大型、企业级系统服务器

MyBatis当初就是为企业级应用程序而设计的。最重要的是,MyBatis在这个领域比之其余解决方案有着大量的优势。MyBatis最初的建立者都只有从大型应用到企业级应用程序系统的开发经 验。这些系统一般都涉及不止一个数据库,且全部这些数据库都是不可控的。以前中咱们讨论了各类类型的数据库,包括企业级数据库、私有数据库和遗留数据库。建立MyBatis框架一个很重要的缘由就是针对这样的数据库。所以,MyBatis拥有许多适合于企业应用环境的特征。架构

其实MyBatis适用于大型系统中的第一个缘由咱们已经在其余地方说过了,不过这个缘由的确很重要,因此咱们再强调一下也不为过:MyBatis没有对数据库模型或对象模型的设计作任何假设。 不论你的应用程序中这两个模型之间是多么不匹配,MyBatis都能适用。何况,MyBatis没有对你的 企业级系统的架构作出任何假设。不论你对数据库是根据业务功能纵向划分,仍是按照技术横向划分,MyBatis都容许高效地处理数据并将它整合到面向对象的应用程序中去。框架

第二点,MyBatis的某些特征使得它可以很是高效地处理大型数据集。MyBatis支持的行处理器使得它可以批处理超大型记录集(一次一条记录)。MyBatis也支持只获取某个范围 内的结果,这就使得你能够只获取那些你当前亟需的数据。例如,假设你有10 000条记录,但只 须要其中的第500条〜第600条,那么就能够轻松地仅获取这些记录。MyBatis支持驱动程序提示, 使得执行这样的操做很是高效。工具

最后一点,MyBatis容许你用多种方式创建从对象到数据库的映射关系。一个企业级系统只以一种模式工做的状况是很是少见的。许多企业级系统须要在白天执行事务性的功能,而在晚上执行批处理功能。MyBatis容许你将同一个类以多种方式映射,以保证每一种功能都能以最高效的方式执行。MyBatis一样支持多种数据获取策略。例如,能够选择对某些数据进行延迟加载,也能够 将一个复杂的对象图只用一条联合查询SQL语句就同时加载完毕,从而避免严重的性能问题。性能

咱们有充足的理由说明,你几乎能够在任何系统中使用MyBatis。正如前面所介绍的, 像MyBatis这样一个框架可以使你的应用程序从架构级别上受益。本节就将讨论这些益处以及使这些益处成为可能的iBATIS特征。

简单性

MyBatis被普遍认为是当今可用的最简单的持久化框架之一。简单性的理念根植于MyBatis开发团队,它在MyBatis的全部开发目标中居于首位。这种简单性的取得是由于MyBatis直接构建于JDBC 和SQL之上。MyBatis对于Java开发人员来讲很是简单,由于它除了不用编写那么多代码外,与JDBC的工做机制很是相像。几乎你知道的关于JDBC的一切都对iBATIS一样适用。几乎能够认为, MyBatis就是以XML的形式描述的JDBC代码。也就是说,MyBatis拥有许多JDBC所没有的架构级的优势,咱们随后就将讨论这些优势。MyBatis对于数据库管理员以及SQL程序员来讲也很是容易 理解。iBATIS配置文件几乎人人都能读懂,只要有SQL编程的经验。

生产效率

任何一个优秀的框架,其基本目的都是使得框架的使用者可以得到更高的生产效率。通常状况下,框架负责处理公共的任务,减小编写重复的样板代码,以及解决复杂的架构级的问题。 MyBatis在给开发人员带来更高的开发效率方面作得很是成功。在Java用户组所作的—案例中, MyBatis减小了持久层大约62%的代码量。之因此能减小如此多的代码量, 究其缘由是开发人员再不须要编写繁琐的JDBC代码了。SQL语句仍然是硬编码的,不过就像你在前面小节中所看到的,SQL不是问题——问题在于JDBCAPI。

性能

性能这个话题无疑会引发框架开发人员、框架使用者以及商业软件开发商之间的一场激烈争论。事实是,从一个较低的层次来看这个问题,无疑全部的框架都会带来必定的性能损失。通常 来讲,若是你比较硬编码的JDBC代码和MyBatis代码,作一个1 000 000次的for循环,就会发现 JDBC在性能上的确有一些优点。幸运的是,在现代应用程序开发中,以上这样的for循环带来的 性能损失并不重要。真正重要的是,你如何从数据库中获取数据,什么时候获取,获取的频率又是多少。例如,从数据库中动态地获取记录的分页查询之因此能大大提升应用程序的性能就在于,你不会将潜在的成千上万条记录从数据库中一次取出。一样地,使用像延迟加载这样的特征能够避免加载那些当前用例并不须要的数据。另外一方面,若是你肯定须要加载一份复杂的对象图,涉及来自多个表的大量数据,那么使用一条SQL语句就完成全部对象的加载显然能够大大提升效率。 MyBatis支持许多性能优化措施。就目前而言,最重要的是 要知道MyBatis老是能经过一种简单的方式来配置和使用,其性能与JDBC至关,甚至更好。另外一 个须要重点考虑的问题就是,并非全部的JDBC代码都是编写良好的。JDBCAP很是复杂,编 写正确的代码须要很是当心。不幸的是,大量的JDBC代码都编写得至关糟糕,所以从较低层次上看甚至尚未MyBatis工做得好。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的优点

MyBatis知多少(5)业务对象模型

MyBatis知多少(6)表现层与业务逻辑层

MyBatis知多少(7)持久层

MyBatis知多少(8)关系型数据库

MyBatis知多少(9)不一样类型的数据库

MyBatis知多少(10)应用程序数据库

MyBatis知多少(11)企业数据库

MyBatis知多少(12)私有数据库

MyBatis知多少(13)MyBatis如何解决数据库的常见问题

MyBatis知多少(14)分散的数据库系统

MyBatis知多少(15)数据模型

MyBatis知多少(16)MyBatis映射

MyBatis知多少(17)MyBatis和JDBC

相关文章
相关标签/搜索