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
更多>>关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?
一、关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点1.字段默认值:针对每个字段都有自己的默认值,较有利于进行统计和分析,以及...详情>>
2023-10-20 21:56:39Gradle Transform到底是什么怎么用?
一、Gradle Transform到底是什么Gradle Transform是Android官方提供给开发者在项目构建阶段(.class -> .dex转换期间)用来修改.class文件的一...详情>>
2023-10-20 20:24:09MyBatis和jOOQ有哪些区别?
一、MyBatis和jOOQ的区别1、数据库操作风格不同MyBatis是一种基于XML或注解配置的SQL映射框架。它通过编写SQL语句,并使用对象映射将结果集映射...详情>>
2023-10-20 19:06:20ACTION_CANCEL到底何时触发,滑出子View范围会发生什么?
一、ACTION_CANCEL在这些时候会触发1、父view拦截事件首先要了解ViewGroup什么情况下会拦截事件,请看下面一段代码:@Overridepublic boolean d...详情>>
2023-10-20 11:22:41热门推荐
在mysql中, 为什么只有右模糊才走索引?
沸为什么声明性语言往往适合于并行执行,命令代码很难在多个内核和多个机器之间并行化?
热SQL语言中的ALTER和UPDATE,DROP和DELETE都有什么区别?
热关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?
新MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?
jmeter性能测试步骤?
Gradle Transform到底是什么怎么用?
Excel与数据库有什么不同?
MyBatis和jOOQ有哪些区别?
什么是web前端?
一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么?
在数据库查询的底层实现上SQL Server和MySQL的区别是什么?
外企银行一般用什么linux版本系统和数据库呢?
neo4j有什么缺点?