什么是mybatis框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是mybatis框架相关的知识,希望对你有一定的参考价值。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

背景

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

特点

    简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

    灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

    解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

    提供映射标签,支持对象与数据库的orm字段关系映射

    提供对象关系映射标签,支持对象关系组建维护

    提供xml标签,支持编写动态sql。

参考技术A MyBatis 本是apache的一个开源项目iBatis, 是一个优秀的持久层框架。它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

Mybatis框架初识Mybatis框架

一、 什么是框架
框架(Framework)就是一个提供了可重用的公共结构的半成品,是应用程序的骨架。它就好比建筑物的骨架,结构统一固定,不需要考虑建筑物结构怎么设计,只需要考虑在这样的结构基础上,使用什么内容(建筑材料)来填充这个建筑物。对应到程序上也是一样的道理,程序结构固定,只需填充满足功能的相关代码即可。
那么使用框架有什么优势呢?
1、 保证了程序结构风格统一,便于学习和维护。
2、 省去了结构设计,可以专心于业务逻辑的开发。
3、 框架集中了前人的经验,使初学者能够写出结构优美,高质量的程序。
二、 什么是Mybatis框架
Mybatis是一个优秀的数据持久层框架,采用配置文件动态管理SQL语句,并含有输入映射、输出映射机制以及数据库连接池配置,是一种半自动化的ORM实现。那么ORM又是什么?
ORM(Object/Relational Mapping)对象/关系映射是一种数据持久化技术,它在对象模型和关系型数据库之间建立了对应关系,并且它提供了一种机制,通过JavaBean对象操作数据库表中的数据。Mybatis是ORM解决方案。通过Mybatis可以建立SQL关系映射,便捷地实现了数据的增删改查等操作。
三、Mybatis优点
简单:易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
实用:提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供了DAO框架,可以使我们更容易的开发和配置
灵活:通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
功能完整:提供了连接管理,缓存支持,线程支持,(分布式)事物管理,通过配置作关系对象映射等数据访问层需要解决的问题。提供了DAO支持,并在DAO框架中封装了ADO.NET,NHibernate和DataMapper。
增强系统的可维护性:将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
四、Mybatis整体架构
技术图片
1、Mybatis的配置,有2类配置文件,Mybatis-Config.xml、Mapper.xml
mybatis-config.xml 配置了全局的参数,全局只有一个配置,文件名称不是固定的,随意取名。
Mapper.xml 配置了sql Statement,该文件可以有多个,每个配置文件中可以有多个sql Statement;
2、通过配置可以得到SqlSessionfactory
3、通过SqlSessionFactory得到SqlSession,得到Session后可以执行sql。
4、SqlSession通过底层提供的Executor(执行器)执行sql,
5、Mybatis将Mapper.xml中的sqlStatement解析为MappedStatement对象
6、通过参数输入,参数类型有三种,HashMap、简单数据类型、pojo。
7、在数据库中执行sql
8、输出得到结果,输出类型有三种,HashMap、简单数据类型、pojo。

五、Mybatis使用步骤
代码中的使用步骤
1、通过配置文件创建SqlSessionFactory
2、通过SqlSessionFactory创建SqlSession对象
3、通过SqlSession操作数据库
4、调用session.commit()提交事务
5、调用session.close()关闭会话

以上是关于什么是mybatis框架的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis框架初识Mybatis框架

什么是mybatis框架

SpringBoot集成mybatis框架

Mybatis框架--小结

MyBatis框架

10.29Mybatis框架学习