Mybatis个人简单理解

Mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

配置文件中需要配置数据源、数据库信息、配置SqlSession,标明mapper映射,注解驱动
mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来更加的方便,可以灵活的编写sql,支持编写动态sql,将业务逻辑层和数据访问逻辑分离,更易维护。

一级缓存

一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的sqlSession之间的缓存数据区域是互相不影响的。也就是他只能作用在同一个sqlSession中,不同的sqlSession中的缓存是互相不能读取的。

一级缓存的工作原理:
在这里插入图片描述
类似于redis缓存:第一次查询数据,先查缓存,如果有记录,直接读取;如果没有记录,再查数据库,同时写入缓存。更新数据同理,更新数据先更新缓存,再更新数据库;亦或者先删除缓存,修改完数据库再次写入缓存。
二级缓存原理:

在这里插入图片描述
二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。UserMapper有一个二级缓存区域(按namespace分),其它mapper也有自己的二级缓存区域(按namespace分)。每一个namespace的mapper都有一个二级缓存区域,两个mapper的namespace如果相同,这两个mapper执行sql查询到数据将存在相同的二级缓存区域中。

MyBatisMyBatis Plus都是Java平台上流行的持久层框架,用于简化数据库操作的开发工作。下面我会分别解释一下它们的概念和特点。 1. MyBatisMyBatis一个开源的持久层框架,它提供了将SQL语句和数据库操作进行映射的能力。它的主要特点包括: - 灵活性:MyBatis允许你使用原生的SQL查询语句,而不需要使用过度抽象的ORM框架。 - 易于集成:MyBatis可以与任何基于Java的应用程序集成,无论是基于Java EE还是Spring等其他框架。 - 易于学习和使用:相对于其他ORM框架,MyBatis的学习曲线较为平缓,上手较为容易。 2. MyBatis Plus: MyBatis Plus是在MyBatis基础上进行了扩展和增强的框架,提供了更多便捷的功能和特性。它的主要特点包括: - 简化CRUD操作MyBatis Plus提供了一些常用的CRUD方法,可以大大减少编写重复SQL的工作量。 - 代码生成器:MyBatis Plus内置了一个代码生成器,可以根据数据库表结构自动生成实体类、Mapper接口以及XML映射文件,进一步减少开发工作量。 - Lambda表达式支持:MyBatis Plus支持使用Lambda表达式进行查询,使得查询条件的编写更加简洁易读。 - 多租户支持:MyBatis Plus提供了多租户的支持,可以轻松实现同一个系统中多个租户的数据隔离。 总结来说,MyBatis一个轻量级的持久层框架,而MyBatis Plus在此基础上进行了功能扩展和增强,提供了更多便捷的特性,使得开发过程更加高效和简单。具体选择使用哪个框架取决于项目需求和个人喜好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值