MyBatis学习笔记
1.Mybatis
简介
MyBatis
本是
apache
的一个开源项目
iBatis
, 2010
年这个项目由
apache software foundation
迁移到了 google code,并且改名为
MyBatis
。
2013
年
11
月迁移到
Github
。
iBATIS
一词来源于
“internet”
和
“abatis”
的组合,是一个基于
Java
的
持久层
框架。
iBATIS
提供的持久层框 架包括SQL Maps
和
Data Access Objects
(
DAOs
)。
MyBatis
是一款优秀的持久层框架,它支持定制化
SQL
、存储过程以及高级映射。
MyBatis
避免了几乎 所有的 JDBC
代码和手动设置参数以及获取结果集。
MyBatis
可以使用
简单的
XML
或
注解来配置
和映 射原生信息,将接口和 Java
的
POJOs(Plain Ordinary Java Object,
普通的
Java
对象
)
射成数据库中的 记录。可以根据配置将数据库的数据和Java对象进行映射关联。
1.1.
特点
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个
jar
文件
+
配置几个
sql
映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
灵活:
mybatis
不会对应用程序或者数据库的现有设计强加任何影响。
sql
写在
xml
里,便于统一
管理和优化。通过
sql
语句可以满足操作数据库的所有需求。
解除
sql
与程序代码的耦合:通过提供
DAO
层,将业务逻辑和数据访问逻辑分离,使系统的设计更
清晰,更易维护,更易单元测试。
sql
和代码的分离,提高了可维护性。
提供映射标签,支持对象与数据库的
orm
字段关系映射
1.2.ORM
ORM
是
Object Relation Mapping
的缩写。翻译过来:对象关系映射。
对象关系映射是指,在
Java
程序中,进行数据访问时,
Java
程序一般都会为数据中数据创建实体类。由
于,数据库中一般使用表存储数据,而创建的实体类,里面包含的都是表的属性字段。即一个实体类对
应一张表,表中的每条数据,则又是实体类的一个具体对象。这种映射关系,就被称之为
ORM
映射。
在
ORM
框架中,崇尚以对象的模式操作数据。数据和对象其实类似于进行绑定,当修改对象时,自然修 改具体的实际数据。最典型的ORM
框架:
Hibernate
。无需编写任何
SQL
语句,可以实现对数据库的意CRUD
操作。
但是这种方式,效率比较低,因为实现原理,是框架自身,根据需要操作的数据库,及目前用户需求的 API自动的生成
SQL
语句。这种方式,降低对开发人员的数据库的要求,但是
SQL
是程序生成,无法干 预,即无法进行优化。 个人不太喜欢Hibernate
框架,原因:它太强大了。它都能帮你完成。比较笨重。
1.3.
市面主流的
ORM
框架:
Hibernate :
全自动的
ORM
框架。封装严格。
Mybatis:
半自动的
ORM
框架。半封装,可以更好的自定义。
Spring DATA JPA:
类似于
Hibernate
。
注意:
市面上
ORM
框架很多,但是最受程序员推崇的是
Mybatis
。因为
Hibernate
在处理数据量,频率高的业 务场景时,存在瓶颈,且不易突破。而Mybatis
可以认为定制
SQL
语句,可以更好的优化。且轻便,只 需要导入一个jar
包即可。
2.
框架出现的意义
2.1.
什么是开发框架?
LayUI
前端开发框架,
JDK
:
Java
最核心最强大的开发框架。
框架:框架就是按照某种需求,搭建的框子。后续相关的操作,都在框子范围中进行。
开发框架:为了更好的进行开发,对程序进行封装和规范,使使用者,在框架中,可以更好的进行开 发。
2.2.
开发框架的意义?
框架不一定提高了开发效率,也不一定提高了程序的性能。但是,框架本身作为一个规范,具有的统一 的API
。 使用框架进行开发,那么就必须遵循框架的规范。这样,在一定程度上,统一了代码的结构和开发规 范。便于维护。
例如:
数据库操作。
BaseDao :
每个人的
BaseDao
的标准不一样。这样虽然都能完成对数据库的数据
操作。但是具体的实际过程是存在很大差异,不便于维护。代码标准不一样,作为人员流动性比较大的 行业,对于新人而言,可能需要重新学习,耗费时间和资源。且没有太大的价值。
并且,越是庞大的项目,规范就越是重要。使用框架的必要性也越重。
3.Mybatis
框架的使用
官方中文文档:
https://mybatis.org/mybatis-3/zh/index.html