MyBatis 学习笔记

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

Configuration

管理mysql-config.xml全局配置关系类

SqlSessionFactory

Session管理工厂接口

SqlSession

SqlSession是一个面向用户(程序员)的接口。SqlSession中提供了很多操作数据库的方法

Executor

执行器是一个接口(基本执行器、缓存执行器)

作用:SqlSession内部通过执行器操作数据库

MappedStatement

底层封装对象

作用:对操作数据库存储封装,包括 sql语句、输入输出参数

StatementHandler

具体操作数据库相关的handler接口

ResultSetHandler

具体操作数据库返回结果的handler接口

MyBatis 加载mapper方式 ?

4种方式 class、package、resource、url。其中package优先级最高

MyBatis 缓存:https://www.cnblogs.com/yuluoxingkong/p/8205858.html

一级缓存是针对SqlSession的,但sqlSession执行commit,即增删改操作时会清空缓存。这么做的目的是避免脏读。(默认开启)

=> 实际开发中,MyBatis通常和Spring进行整合开发。Spring将事务放到Service中管理,对于每一个service中的sqlsession是不同的,这是通过mybatis-spring中的org.mybatis.spring.mapper.MapperScannerConfigurer创建sqlsession自动注入到service中的。 每次查询之后都要进行关闭sqlSession,关闭之后数据被清空。所以spring整合之后,如果没有事务,一级缓存是失效的。

二级缓存是针对mapper级别的缓存,二级缓存是跨SqlSession的,如果对该表的操作与查询都在不同一个namespace下,那么会发生数据的脏读。(默认关闭)适用场景:如果是读多写少,并且操作规范的情况下,是会提高查询效率的,一般很少使用 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值