MyBatis文档观后整理

本文介绍如何使用Maven整合MyBatis,并通过代码示例展示基本操作流程。同时,深入探讨MyBatis的一级和二级缓存机制,包括缓存的配置方法、工作原理及自定义缓存实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看了一下mybatis的官方文档,下面是自己粗略整理的一些常用知识点

1)maven整合mybatis

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

2)代码示例:

InputStream inputStream = Resources.getResourceAsStream("spring-mybatis.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
 

CustomerMapper mapper = session.getMapper(CustomerMapper.class);
Customer customer = mapper.queryCustBaseByCustId(96L);
System.out.println(customer.getAccountName());

注释:SqlSessionFactoryBuild建议单例

   SqlSessionFactory作用于应用域

   SqlSession 以及 Connection 作用于方法域,用完就close掉,每个线程都应该有它自己的 SqlSession 实例

3)缓存

mybatis缓存默认是没有开启的,除了局部的Session缓存(一级缓存),要开启二级缓存,在SQL映射文件中

添加 <cache />,以及相对应的model类要是实现Serializable接口

==> 映射语句文件中的所有的select语句将会被缓存

==> 映射语句文件中的所有的insert update delete 语句将会刷新缓存

==> 缓存会使用LRU(least recently used 最近最少使用的)算法回收

==> 根据时间表,缓存不会以任何时间顺序来刷新

==> 缓存会存储列表集合或对象(无论查询方法返回什么)的1024个引用

==> 缓存会被视为read/write 的缓存,意味这对象检索不是共享的,而且可以安全的被调用者修改,而不干扰其他调用者或者线程所做的修改

自定义缓存

  <cache type = "com.xxx.xxx.mycache"/>,其中com.xxx.xxx.mycache类必须实现 org.mybatis.cache.cache接口


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值