admin 管理员组文章数量: 1184232
2024年5月15日发(作者:linux怎么读取光盘内文件)
龙源期刊网
关于Mybatis持久层框架的应用研究
作者:荣艳冬
来源:《信息安全与技术》2015年第12期
【 摘 要 】 数据库访问是软件开发中必不可少的技术环节,Java语言之所以能够在企业中
占领非常重要的地位,这与其方便快捷和高可扩展性的数据库操作有很大关系。论文主要讨论
如何使用Mybatis建立持久层。文中首先阐述了什么是持久层框架,然后从架构和应用流程两
方面详细论述了Mybatis技术,最后分析了Mybatis存在的优势和劣势。通过论述可以得出结
论:Mybatis完全可以满足企业需求,企业需要在它的基础之上进行再次的封装,从而提高数
据库访问编程效率和持久层的成熟度。
【 关键词 】 Mybatis;持久层;实体关系映射;框架
Application Research of Mybatis Persistence Layer Framework
Rong Yan-dong
(Inner Mongolia Business & Trade Vocational Colleage Inner MongoliaHohhot 010070)
【 Abstract 】 Database access is an essential technical link of software development, Java
language is able to occupy a very important position in the enterprise, which is convenient and
highly scalable database operation has a great relationship. This paper mainly discusses how to use
Mybatis to establish a persistent layer. This paper first describes what is persistence layer
framework, and then discussed Mybatis technology from both architecture and application process
in detail, and finally the advantages and disadvantages of Mybatis are analyzed. By discussing the
following conclusions: Mybatis can meet the needs of the enterprise, the enterprise needs to carry
on the repackaging based on it, so as to improve the efficiency of database access programming and
the maturity of the persistence layer.
【 Keywords 】 mybatis; persistence layer; object relational mapping; framework
1 引言
在企业项目开发中,数据库技术是最为基础的一项技术,Java之所以被企业广泛的应用,
与其方便快捷的数据库操作技术有直接关系。Java语言通过JDBC实现数据库连接和CRUD操
作。但是,如果直接通过JDBC技术进行数据库操作会产生大量重复的代码,降低编程效率,
数据访问层维护困难等问题,所以在企业开发中经常将JDBC封装成操作方便的持久层框架,
然后由程序进行调用。本文主要讨论持久层框架Mybatis的具体应用。
龙源期刊网
2 持久层框架
2.1 什么是持久层
数据持久化是指将数据永久的存储在计算机的硬盘中,而在软件开发中,通常这些数据被
存储在数据库中。持久层是专门负责数据持久化的逻辑层,提供对数据库的CRUD操作。
2.2 常见持久层框架
很多企业为了简化数据库操作,将对数据库操作封装为软件框架,Java语言成熟的持久层
框架非常多,而且这些框架大部分是开源的,其中非常典型的框架是Hibernate和Mybatis。
Hibernate框架无需用户编写SQL语句就可以实现ORM(实体关系映射),编程人员完全以面
向对象的编程思想进行数据库操作,它提供较为完整的JDBC封装,但这也限制了用户灵活的
运用SQL进行数据库的操作,如果用户需要进行复杂的查询操作,反而会给用户制造更大的
麻烦,学习成本被大大提高。
3 Mybatis框架技术
MyBatis是集成SQL查询、存储过程调用和高级映射的持久层框架,它封装了几乎所有通
过手工设置的JDBC代码,通过简单的XML配置和注解将Java的POJOs映射成数据库中的记
录。
3.1 Mybatis的架构
(1)基础层:负责配置文件加载、数据库连接管理、事务管理和缓存处理,这些作为数
据处理层的支撑。
(2)数据处理层:负责SQL语句的生成、解析和执行,实现数据库记录和Java实体进行
映射,根据用户请求执行对数据库的CRUD操作。
(3)API接口层:提供了大量的API,开发人员通过这些API接口更加方便的对数据库
进行操作。
3.2 Mybatis的应用流程
Mybatis实现实体关系映射主要是基于XML配置,它给用户提供了非常便捷的应用流
程,如图1所示。
3.2.1 编写主配置文件
龙源期刊网
主配置文件是Mybatis接入项目的初始文件,这个配置文件默认的名字是“mybatis-
”文件,主要配置数据数据库连接、事务处理模式、缓存方式和ORM映射文件等内
容。
3.2.2 建立SQLSession
与Hibernate相同,Mybatis对数据库的操作定义为一个会话过程,所以用户在再执行数据
操作之前需要建立会话。在建立会话之前首先要构建“SQLSessionFactory”实例,这个实例创建
的过程的同时加载主配置文件,构建数据库连接池,打开数据库链接。通过
“SQLSessionFactory”的“openSession”方法建立“SQLSession”实例,从而完成会话的创建。
3.2.3 配置ORM(实体关系映射)
ORM的配置在Mybatis的体系中起到关键作用,通过配置查询、增加、修改和删除等操
作,实现关系数据库和实体进行对应,在实际开发中通常对一个实体的操作配置在一个ORM
文件中,这个文件被配置在主配置文件中,以下是查询的ORM配置代码:
SELECT * FROM PERSON WHERE ID = #{id}
AND title like #{title}
“parameterType”和“resultType”分别是参数类型和查询结果类型,其中“resultType”可以是
List、Map和实体等任何类型,用户可以根据需求设定,也可以利用resultMap配合实现更加复
杂的查询结果类型匹配。
在配置中可以结合ONGL实现动态SQL,以上代码中的“IF”标签实现了如果条件满足的
情况下增加查询条件。另外,配置文件还提供了标签,它允许用户将SQL代码库注入到配置
文件中,通过以上的方式能够更加灵活的进行查询的配置
3.2.4 数据库访问
Mybatis提供了丰富的API进行数据库访问,这些方法主要通过SQLSession实例进行调
用,表1是常用的API。
龙源期刊网
3.2.5 关闭Session
数据库操作完毕后,会话实例通过调用close方法关闭本次会话。会话的关闭代表一次数
据库访问的完成,合理的打开连接和关闭会话可以有效的节省系统资源。
4 Mybatis优势和劣势分析
4.1 Mybatis优势分析
Mybatis是开源免费,轻量级框架。通过Mybatis的工作流程可以知道它非常容易上手,
学习成本低,解除了SQL和程序代码的耦合,支持动态SQL,用户可以灵活的运用SQL进行
数据的查询,更符合对于SQL掌握较好的用户。用户可以在他的基础之上继续封装满足自己
需求的持久层。
4.2 Mybatis的劣势分析
Mybatis的缺点也非常明显,它需要用户书写较多的SQL代码,这对于数据库的移植是个
很大的问题,要求用户对于SQL语言掌握的非常纯属,对于级联操作的支持不好,对于复杂
的查询更多依赖用户的逻辑。
5 结束语
本文从技术架构和应用流程两方面对于Mybatis进行了详细的论述,分析了Mybatis的优
势和劣势。Mybatis作为持久层框架没有放弃SQL,它允许用户更多的通过SQL实现ORM,
这种模式虽然灵活,但在开发一个相对成熟的项目中会大大降低工作效率,所以企业如果使用
Mybatis,需要根据自己项目的实际情况对Mybatis进行再次的封装,让数据库访问更加简洁和
实用,从而提高工作效率。
参考文献
[1] 王钱,王蓉等.基于ibatis的通用数据持久层的研究与设计[J].微计算机信息,2007,23
(43),172-173页.
[2] 徐雯,高建华.基于Spring MVC及Mybatis的Web应用研究[J].微型电脑应用,2012,
28(7),1-5页.
[3] 张少应,程传旭.基于Hibernate持久化层的设计与实现[J].计算机技术与发展,2014,
11.
作者简介:
龙源期刊网
荣艳冬(1981-),男,山西太原人,内蒙古师范大学,本科,讲师,系副主任;主要研
究方向和关注领域:软件开发、计算机应用技术。
版权声明:本文标题:关于Mybatis持久层框架的应用研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1715771907a688875.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论