数据库连接

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文件,则共享二级缓存作用域。

相关推荐
你觉得脆皮鸡好吃吗4 分钟前
SQL注入 基础防御
数据库·sql
池佳齐4 分钟前
软考高级系统架构设计师备考(十九):数据库系统—数据库设计
数据库·系统架构
_Evan_Yao13 分钟前
缓存金字塔上的红色闪电:Redis 如何借力 CPU 的 L1/L2/L3 与 TLB 飞驰
java·数据库·redis·后端·缓存
Teable任意门互动14 分钟前
多维表格哪家最好用最容易上手?国产开源 Teable 测评
开发语言·数据库·开源·excel·飞书·开源软件
weixin_3812881826 分钟前
Layui怎么在表格标题栏中嵌入一个迷你的HTML搜索表单
jvm·数据库·python
m0_7478545229 分钟前
C# 文件系统Filter Hook C#能否在用户模式下拦截文件系统调用
jvm·数据库·python
z4424753261 小时前
MySQL如何配置自动清理失效事务锁_结合定时任务清理
jvm·数据库·python
2301_800976931 小时前
数据库的基本操作
数据库·sql·oracle
cyber_两只龙宝1 小时前
【Oracle】Oracle之使用DML语言管理表
linux·运维·服务器·数据库·云原生·oracle
电商API_180079052471 小时前
获取淘宝商品原价、券后价的区别在哪里?难度以及解决办法
数据库·性能优化·数据挖掘·数据分析·网络爬虫