`

【持久化框架】Mybatis简介与原理

阅读更多

从这篇博文开始我们学习一下Mybatis,希望大家提出宝贵的建议。

 

什么是Mybatis

 

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

MyBatis参考资料官网:https://mybatis.github.io/mybatis-3/zh/index.html

官网对Mybatis的介绍更加具有权威性:

 

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

 

 

 

MyBatis是iBatis的升级版,用法有很多的相似之处,但是MyBatis进行了重要的改进。例如:

 

1、Mybatis实现了接口绑定,使用更加方便。

 

在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

 

2、对象关系映射的改进,效率更高

 

3、MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。

 

对于IBatis与MyBatis的区别就不再多说了,感兴趣的朋友可以研究一下。

 

MyBatis的框架架构

 


看到Mybatis的框架图,可以清晰的看到Mybatis的整体核心对象,我更喜欢用自己的图来表达Mybatis的整个的执行流程。如下图所示:

原理详解:

MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession。

 

MyBatis的优缺点

 

优点:

1、简单易学

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

 

2、灵活

mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

 

3、解除sql与程序代码的耦合

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

 

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


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


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

 

缺点:

 

1、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。


2、SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。

 

3、框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

 

4、二级缓存机制不佳

 

总结

 

mybatis的优点同样是mybatis的缺点,正因为mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限。

mybatis没有hibernate那么强大,但是mybatis最大的优点就是简单小巧易于上手,方便浏览修改sql语句。

 

下篇博文,我们搭建一个简单的Spring和Mybatis集成的Web项目,马上送到。

 

 

分享到:
评论

相关推荐

    java 之持久化框架mybatis3,

    MyBatis的核心思想是将SQL语句从Java代码中分离出来,通过映射配置文件,或注解的方式,将SQL语句与Java对象进行绑定,从而实现数据的持久化操作。 MyBatis的主要特性包括: 1. 消除大量的JDBC冗余代码:MyBatis...

    Spring整合Mybatis与SpringBoot整合Mybatis原理分析

    **Spring整合Mybatis原理分析** 在Java Web开发中,Spring框架以其强大的依赖注入和面向切面编程能力,成为了事实上的核心框架。Mybatis则是一个轻量级的持久层框架,它简化了数据库操作,提供了直观的SQL映射。将...

    深入浅出Mybatis技术原理与实战-高清pdf

    MyBatis,作为一款强大的Java持久层框架,深受开发者喜爱,尤其在大数据处理时代...通过学习这本书,开发者不仅能理解MyBatis的工作原理,还能在实际项目中游刃有余地运用MyBatis,解决数据持久化问题,提高开发效率。

    深入浅出MyBatis技术原理与实战

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。它的出现极大地简化了Java项目中的数据库操作,使开发者能够更专注于业务逻辑的实现。 首先,我们要理解MyBatis的基本概念。MyBatis将SQL...

    Mybatis的课程管理系统数据持久化外文文献及翻译.zip

    在“Mybatis的课程管理系统数据持久化外文文献及翻译.zip”压缩包中,包含了关于Mybatis如何应用于课程管理系统的数据持久化的外文资料及其中文翻译。这些文献对于那些正在进行毕业设计,特别是使用Mybatis框架的...

    深入浅出MyBatis技术原理与实战(高清带书签)

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,旨在简化Java开发中的数据库操作。这本书通过理论与实践相结合的方式,全面介绍了MyBatis的核心概念、设计模式以及在实际项目中的应用。 ...

    深入浅出MyBatis技术原理与实战.pdf

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...

    Mybatis框架基本介绍

    Mybatis框架的基本工作原理是,通过一个XML文件,该文件配置了数据库的连接信息以及SQL语句等,然后使用Java代码中的SQLSessionFactory构建器来生成SQLSession,通过这个Session进行数据库的操作。Mybatis使用了JDBC...

    mybatis框架笔记

    MyBatis将Java对象转换为SQL语句,实现了数据的持久化。 五、MyBatis第一个程序 1. 需求:将内存中的对象持久化到数据库。 2. 搭建步骤: (1)导入jar包:将MyBatis的jar包及其依赖包放到项目的根目录的lib...

    深入浅出MyBatis技术原理与实战和SpringBoot实战第4版

    《深入浅出MyBatis技术原理与实战》与《SpringBoot实战第4版》这两本书是IT领域关于数据库持久化框架MyBatis和轻量级Java应用框架SpringBoot的权威指南。在这里,我们将深入探讨这两个关键技术的核心概念、工作原理...

    深入浅出MyBatis技术原理与实战(高清目录+部份源码)

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,旨在简化Java开发中的数据库操作。这本书通过高清目录和部分源码,帮助读者深入理解MyBatis的工作原理,并提供实战指导,提升开发效率。 ...

    Mybatis 简介与原理

    Mybatis 简介与原理 Mybatis 是一个优秀的持久层框架,支持定制化 SQL、存储过程以及高级映射。它避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。Mybatis references iBatis,一个基于 Java 的持久层...

    深入浅出MyBatis技术原理与实战 第六章 源代码

    在深入探讨MyBatis技术原理与实战的第六章中,我们主要关注的是MyBatis的源代码分析。MyBatis是一个流行的Java持久层框架,它提供了灵活的SQL映射功能,使得开发人员能够轻松地将数据库操作与业务逻辑集成在一起。这...

    深入浅出Mybatis原理与实战

    总结来说,深入理解MyBatis原理与实战,意味着你需要掌握其核心组件的工作机制、XML映射文件的编写、注解的应用、执行流程、缓存机制以及插件的使用。这将帮助你在实际项目中更高效、更灵活地管理数据库操作,提升...

    spring,mybatis框架组合

    Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而MyBatis则是一个轻量级的持久层框架,专注于数据库操作,它简化了SQL的编写和执行过程。接下来,我们将深入...

    ssm框架,aop,mybatis所需的jar.rar

    SSM框架,即Spring、SpringMVC和MyBatis的集成框架,是Java Web开发中常用的三大组件。这个压缩包“ssm框架,...通过理解和掌握这三个框架的原理与使用,开发者可以提升项目开发效率,同时保证代码的可维护性和扩展性。

    ssm框架原理分析

    MyBatis 框架还提供了一个强大的映射机制,使得开发者可以将 Java 对象与数据库表之间建立映射关系,从而实现数据的持久化。 四、SSM 框架的整合 SSM 框架的整合是指将 Spring、SpringMVC 和 MyBatis 三个框架组合...

Global site tag (gtag.js) - Google Analytics