MyBatis流行的原因?
一、MyBatis流行的原因
1、容易上手,学习门槛低
mybatis它是一个优异的开源持久层框架,mybatis之所以很流行,是因为mybatis很容易上手,开发速度很快,学习门槛很低,想要真正掌握myabatis也很容易,程序员就可以直接编写原生的sql语句,我们可以自己控制sql语句的执行性能。mybatis使用场景是对关系数据模型要求不高的软件使用,比如电商网站软件需要要求变化频繁,如果需求变化就立马要求输出结果,这是使用mybatis就有好处了。
2、sql优化性能好
mybatis在sql优化性能方面比Hibernate高得多,Hibernate得查询回将表中的所有字段都给你查出来,这样就会影响性能的消耗,然后mybatis的sql语句程序员可以自己动手编写,可以按需求指定的字段进行查询,当然Hibernate也可以自己编写sql语句来指定查询所需要的字段,这样很显然的不合理,相当破坏了Hibernate开发的简洁性,所有mybatis越来越被大厂流行使用的原因。
3、查询缓存特性强大
mybatis在缓存机制方面有一个很强的查询缓存特性非常的强大,程序员可以非常方便的配置和定制,但是在使用过程中需要注意的是,假如你不能完全确定数据更新操作的范围,就应该避免使用Cache,不然的话可能出现系统的运行带来了一个很大的隐患,当然使用过程中注意就可以。
二、Mybatis的功能架构
1、API接口层
提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。接口是MyBatis提供给开发人员的一套API,通过SqlSession接口和Mapper接口,开发人员可以通知MyBatis框架调用哪一条SQL命令以及SQL命令关联参数。
2、数据处理层
负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
MyBatis框架内部的核心实现,来完成对映射文件的解析与数据处理对Mapper.xml中的参数进行参数解析与参数绑定——(ORM)对Mapper.xml中的SQL语句解析执行SQL,调用底层JDBC进行数据库从操作(即支撑层)结果集映射解析与结果集映射处理3、基础支撑层
负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。用来完成MyBatis与数据库基本连接方式以及SQL命令与配置文件对应,主要负责:
对 MyBatis 与 数据库连接方式 的管理MyBatis 对事务管理方式的统一处理配置文件加载(例如延迟加载)MyBatis查询缓存的管理延伸阅读1:MyBatis概念
Mybatis是一个半ORM(对象关系映射)框架,底层封装了JDBC,是程序员在开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程,使得程序员可以花更多的精力放到业务开发中。

猜你喜欢LIKE
相关推荐HOT
更多>>
Linux系统开机加电后发生了什么?
一、Linux系统开机加电后发生了什么电脑启动后,CPU逻辑电路被设计为只能运行内存中的程序,没有能力直接运行存在于软盘或硬盘中的操作系统,如...详情>>
2023-10-16 20:17:25
Medium Android客户端都使用了哪些开源项目?
1、RetrofitRetrofit是一个适用于 Android 和 Java 的类型安全的 HTTP 客户端,是一个针对Android平台的网络请求库,它基于OkHttp封装了网络请...详情>>
2023-10-16 19:21:33
MySql什么是数据库架构设计?
一、MySql什么是数据库架构设计MySQL是一种流行的关系型数据库管理系统,它被广泛用于Web应用程序和企业应用程序的开发。在MySQL中,数据库架构...详情>>
2023-10-16 13:21:22
JVM中的堆区为什么叫堆(heap),与数据结构中的堆是一个概念吗?
一、JVM中的堆区为什么叫堆(heap)JVM中的堆区和数据结构中的堆并不是一个概念。JVM中的堆区之所以叫做堆,是因为它的物理存储结构类似于堆(h...详情>>
2023-10-16 11:24:35热门推荐
OceanBase相比其他开源的noSQL数据库有什么优点?
沸Flash动画制作的原理是什么?
热为什么GIL让多线程变得如此鸡肋?
热为什么要用Lambda表达式?
新苹果电脑mac怎么安装SQL server?
C、C++、C#的区别?
Linux系统开机加电后发生了什么?
Python解释器,终端,编辑器区别和联系?
Medium Android客户端都使用了哪些开源项目?
MyBatis流行的原因?
transform和opacity动画为什么性能好?
JButton的e.getSource()和e.getActionCommand()方法有什么区别?
webpack中的url-loader和file-loader有哪些区别?
为什么 SwiftUI 用 “some View” 作为视图类型?
技术干货






