MyBatis是一个数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。
MyBatis的优点:
1. 基于SQL语法,简单易学。
2. 能了解底层组装过程。
3. SQL语句封装在配置文件中,便于统一管理及维护,降低了程序的耦合度。
4. 程序调试方便。
MyBatis的发展历史:
1. MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github,通俗说法Ibatis3 = MyBatis;
2. iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO);
MyBatis与JDBC对比:
1. 减少了大量的代码量;
2. 最简单的持久化框架;
3. 架构级性能增强;
4. SQL代码从程序代码中彻底分离,可重用;
5. 增强了项目中的分工;
6. 增强了移植性;
下面是代码对比,相信大家会一目了然。
MyBatis与Hibernate对比:
•Hibernate也是一种被广泛使用的ORM解决方案,和MyBatis不同,它是一种自动化的ORM容器,帮助用户完成了更多的操作,结构更为复杂,使用成本较高,灵活性较之MyBatis更小,他们之间的差异如下:
MyBatis | Hibernate |
是一个SQL语句映射的框架(工具) | ORM框架、提供了从 POJO 到数据库表的全套映射机制 |
注重POJO与SQL之间的映射关系。不会为程序员在运行期自动生成 SQL | 会自动生成全套SQL语句 |
自动化程度低、手工映射SQL,灵活程度高 | 因为自动化程度高、映射配置复杂,api也相对复杂,灵活性低 |
需要开发人员熟练掌据SQL语句 | 开发人员不必关注SQL底层语句开发 |
MyBatis的下载
MyBatis的开发步骤:
MyBatis API介绍
•SqlSessionFactoryBuilder
•主要功能
•该类用于创建SqlSessionFactory的实例,可以被实例化、使用和丢弃,在创建完SqlSessionFactory实例后,该对象实际上就可以被丢弃了。
•SqlSessionFactoryBuilder重载了九个build()方法,允许利用不同的资源来创建SqlSessionFactory实例
•SqlSessionFactory:每一个Mybatis的应用程序都以一个SqlSessionFactory的实例为核心,通过该类可获取操作数据库的核心对象SqlSession
•主要功能
•创建操作数据库的核心对象SqlSession
•生命周期
•该对象应该在你的应用执行期间一直存在,由于要从该对象中获取SqlSession对象,这样的操作会相当频繁,同时创建SqlSessionFactory对象是一件消耗资源的事,因此,该对象的生命周期应该为应用返回,即与当前应用具有相同生命周期。
SqlSession
•SqlSession:SqlSession包含完全以数据库为背景的所有执行SQL操作的方法,可以用SqlSession对象来执行所有已映射的sql语句
•主要功能
•操作数据库
下面是对MyBatis框架的理解学习所做的总结:
1. MyBatis是一个数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现
2. MyBatis的优点:基于SQL语法,简单易学,能了解底层组装过程,SQL语句封装在配置文件中,便于统一管理与维护,降低 了程序的耦合度,程序调试方便;
3. MyBaits内置数据源类型有两种:UNPOOLED-每次请求创建一个新的连接,POOLED-实现了连接池;
4. 使用 MyBatis 的主要 Java 接口就是 SqlSession。可以使用这个接口执行命令,获取映射器;