目录
1.什么是MyBatis框架?
MyBatis是Apache的一个开源项目iBatis,2010年这个项目由Apache Software Foundation迁移到了Google Code,并且改名为MyBatis,2013年11月MyBatis又被迁移到Github。
MyBatis是一个优秀的持久层框架,它可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM(Object/Relation Mapping,即对象关系映射)实现。MyBatis封装性要低于Hibernate,但它性能优越、简单易学,在互联网应用的开发中被广泛使用。
框架优势
相比于使用JSP+Servlet技术进行软件开发,使用框架有以下优势。
1.提高开发效率:如果采用成熟、稳健的框架,那么一些通用的基础工作,如事务处理、安全性、数据流控制等都可以交给框架处理,程序员只需要集中精力完成系统的业务逻辑设计,降低了开发难度。
2.提高代码规范性和可维护性:当多人协同进行开发时,代码的规范性和可维护性就变得非常重要。成熟的框架都有严格的代码规范,能保证团队整体的开发风格统一。
3.提高软件性能:使用框架进行软件开发,可以减少程序中的冗余代码。例如,使用Spring框架开发时,通过Spring的IOC特性,可以将对象之间的依赖关系交给Spring控制,方便解耦,简化开发;使用MyBatis框架开发时,MyBatis提供了XML标签,支持动态的SQL,开发人员无需在类中编写大量的SQL语句,只需要在配置文件中进行配置即可。
2.数据持久化以及ORM
MyBatis框架是一个持久化层的,半自动的ORM框架,那何为持久化 ?何为ORM?
持久化:
持久化就是将内存中有用的数据以某种技术保持起来,并且可以再次取出来应用。也就是说,可以将内存的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型。内存中的数据模型可以是任意数据库结构或对象模型,存储数据的模型可以是XML、二级制流、关系模型等。数据库技术及将数据以文件形式保存在永久介质(磁盘中)的序列化技术等,都是对数据进行持久化的例子。
ORM(Object Relational Mapping,对象/关系映射):
ORM是一种在关系型数据库和面向对象编程语言之间进行数据转换的编程技术。它试图通过在对象模型和数据库关系模型之间建立起对应关系,从而达到通过 JavaBean对象操作数据库表中数据的目的。
3.使用MyBatis框架实现数据库操作
要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。
如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
4.MyBatis框架的优缺点
优缺点:
1.sql语句与代码分离,存放于xml配置文件中:
优点:便于维护管理,不用在java代码中找这些语句;
缺点: JDBC方式可以用用打断点的方式调试,但是Mybatis不能,需要通过log4j日志输出日志信息帮助调试,然后在配置文件中修改。
2.用逻辑标签控制动态SQL的拼接:
优点:用标签代替编写逻辑代码;
缺点:拼接复杂SQL语句时,没有代码灵活,拼写比较复杂。不要使用变通的手段来应对这种复杂的语句。
3.查询的结果集与java对象自动映射:
优点:保证名称相同,配置好映射关系即可自动映射或者,不配置映射关系,通过配置列名=字段名也可完成自动映射。
缺点:对开发人员所写的SQL依赖很强。
4.编写原声SQL:
优点:接近JDBC,比较灵活。
缺点:对SQL语句依赖程度很高;并且属于半自动,数据库移植比较麻烦,比如mysql数据库编程Oracle数据库,部分的sql语句需要调整。