Mybatis_技术栈

Mybatis定义

MyBatis 是一款优秀的持久层框架,
它支持自定义 SQL、存储过程以及高级映射。
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
MyBatis 通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO 为数据库中的记录。

Mybatis底层原理

spring容器初始化:
    读取配置文件(数据源配置),获取sqlsessionFactoy对象(单例)
    连接池 通过 sqlsessionFactoy 工厂生产 n个 sqlsession 对象
代码调用:
    dao层方法调用,通过连接池获取 sqlsession 对象
    sqlsession建立connextion
    方法调用通过映射获取mapper的sql语句
    执行sql,返回结果集

sqlsessionFactory对象

一旦被创建,就应该一直存在
最佳作用域是整个应用
单例模式

sqlsession对象

特点:
    线程不安全,千万不能线程共享

Mybatis缓存

前言:现在都是基于分布式的缓存,缓存都是针对业务而不是查询缓存
Mysql8.0官方都已删除查询缓存了
1级缓存
    sqlsession级别
        增删改 会失效
        不同查询失效
        不同xxx.xml会失效
2级缓存
    namespace级别(一个xxxx.xml都会生效)
        不同的请求在同一个mapper下缓存有效
        只能对单表业务使用  
        多表或者多个mapper里的查询操作同一张表 都会带来问题
        所以缓存还是用 缓存框架 来做

1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值