Mybatis成为首选持久框架的原因

简介: 持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据。

持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据。一般执行持久任务的都是数据库系统。持久层可以使用巨大的磁盘空间,也比较廉价,它的确定就是比较慢。

Mybatis成为java互联网时代首选的持久框架

原因:

1. 不屏蔽SQL ,意味着可以更精确地定位sql语句,可以对其进行优化和改造,这有利于互联网系统性能的提高,符合互联网需要性能优化的特点。

2. 提供强大、灵活的映射机制,方便java开发者使用。提供动态的sql的功能,允许我们根据不同条件组装sql,这个功能远比其他工具或java编码的可读性和可维护性高的多,满足各种应用系统的同时也满足了需求经常变化的互联网应用的要求。

3. 在mybatis中,提供使用了Mapper接口编程,只要一个接口和一个XML就能创建映射器,进一步简化我们的工作,使得很多框架API在mybatis中消失,开发者更集中于业务逻辑。

mybatis核心组件

SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成SqlSessionFactory,采用的是分布构建的Builder模式。

SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用的是工厂模式。

SqlSession(会话),一个既可以发送SQL执行返回结果,也可以获取Mapper的接口。在现有技术中,一般我们会让其在业务逻辑代码中“消失”,而使用的是 MyBatis 提供的 SQL Mapper 接口编程技术,他能提高代码的可读性和可维护性。

SQL Mapper(映射器):Mybatis新设计存在的组件,它由一个java接口和XML文件(或注解)构成,需要给出对应的SQL和映射规则。它负责Sql去执行,并返回结果。

img_42e4a81866d4d550358d868a4dfe17d1.jpe

SqlSession

在 Mybatis 中有两个实现类,DefaultSqlSession 和 SqlSessionManager。

DefaultSqlSession是单线程使用的

SqlSessionManager是多线程使用的。

作用:

SqlSession的作用类似于一个JDBC中的 Connection对象,代表着一个连接资源的启用。

1、获取Mapper接口。

2、发送SQL给数据库。

3、控制数据库事务。

1、创建 SqlSession

SqlSession sqlsession=SqlSessionFactory.openSession();1

2、SqlSession控制数据库事务

//定义SqlSessionSqlSession sqlsession=null;try{ //打开SqlSession会话 sqlsession=SqlSessionFactory.openSession(); //some code ... sqlsession.commit();//提交事务}catch(Exception e){ sqlsession.rollback();}finally{ //在finally语句中确保资源被顺利关闭 if(SqlSession!=null) sqlsession.close();}1234567891011121314

映射器

其有一个接口和对应的 xml 文件( 或注解 )组成。

它可以配置如下内容:

描述映射规则

提供SQL语句,并可以配置SQL参数类型、返回类型、缓存刷新等信息。

配置缓存

提供动态SQL

映射器的主要作用就是将 sql 查询到的结果映射为一个 POJO,或者将 POJO的数据插入到数据库中,并定义一些关于缓存等重要内容

定义一个角色POJO

public class Role{ private Long id; private String roleName; private String note; /*setter and getter*/}


欢迎加入Java高级架构学习交流群:375989619

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导 进群修改群备注:开发年限-地区-经验 方便架构师解答问题

免费领取架构师全套视频!!!!!!!!

相关文章
|
5月前
|
Java 数据库连接 Maven
后端框架学习-----mybatis(使用mybatis框架遇到的问题)
这篇文章总结了在使用MyBatis框架时可能遇到的几个常见问题及其解决方法,包括配置文件注册、接口绑定、方法名匹配、返回类型匹配、Maven资源导出、时区设置和字符编码问题。
|
2月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
50 1
持久层框架MyBatisPlus
|
3月前
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
87 0
|
5月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
5月前
|
Java 数据库连接 mybatis
mybatis框架图
文章介绍了MyBatis框架的起源、发展和其作为持久层框架的功能,提供了MyBatis的框架图以帮助理解其结构和组件。
mybatis框架图
|
5月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
5月前
|
Java 数据库连接 mybatis
后端框架的学习----mybatis框架(9、多对一处理和一对多处理)
这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。
|
5月前
|
Java 数据库连接 测试技术
后端框架的学习----mybatis框架(8、lombok)
这篇文章介绍了如何在MyBatis框架中使用lombok库来简化Java实体类的编写,包括在IDEA中安装Lombok插件、在项目中导入lombok依赖以及在实体类上使用Lombok提供的注解。
|
5月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
6月前
|
Java 数据库连接 Spring
搭建 spring boot + mybatis plus 项目框架并进行调试
搭建 spring boot + mybatis plus 项目框架并进行调试
110 4