数据库连接

JDBC原生

1.通过Driver对象加载驱动

2.获取连接对象Connection

3.通过连接对象获取执行者Statement或者PrepareStatement

4.执行完成后获取Result对象

5.关闭连接

Mybatis

1.基于MyBatis的配置信息,创建一个SqlSessionFactory实例。SqlSessionFactory是线程安全的,可以被多个线程共享。

2.过SqlSessionFactory实例,可以创建SqlSession。(SqlSessio相当于原生的Connection)每个线程都应该拥有自己的SqlSession实例。

3.有了SqlSession相当于一次会话,根据SqlSession得到Mapper对象就可以执行对应的方法了。

Mybatis缓存

1.一级缓存:针对于SqlSession,在一次会话之内,重复的查询,如果期间没有进行修改,会直接返回结果。(分布式环境容易导致bug,因为别的模块对数据修改了,重复查询会返回脏数据)通过修改配置文件就可以关闭了。

2.二级缓存:二级缓存使用的是mapper的作用域,不同的SqlSession只要访问的同一个mapper.xml文件,则共享二级缓存作用域。

相关推荐
dishugj1 分钟前
【Oracle】 RAC 数据库监听原理解析
数据库·oracle
m0_686041617 分钟前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
PD我是你的真爱粉10 分钟前
MySQL基础-DDL语句
数据库·mysql·oracle
我就是你毛毛哥13 分钟前
Spring Boot 项目使用 EasyExcel 实现导出功能
数据库·spring boot·oracle
BD同步14 分钟前
铷原子频率标准设备存在的意义是什么
大数据·数据库·人工智能
白山云北诗19 分钟前
一文读懂什么是CC攻击
网络·数据库·tcp/ip·网络安全·cc·cc攻击·请求数
L16247624 分钟前
MySQL 8.0+ MHA 高可用集群搭建(生产环境级・超详细)
数据库·mysql
2401_8384725125 分钟前
构建一个桌面版的天气预报应用
jvm·数据库·python
秦苒&27 分钟前
【脉脉】AI 创作者 xAMA 知无不言:在浪潮里,做会发光的造浪者
大数据·c语言·数据库·c++·人工智能·ai·操作系统
码农水水29 分钟前
美团Java面试被问:Netty的ByteBuf引用计数和内存释放
java·开发语言·数据库·mysql·算法·面试·职场和发展