当前位置: 首页 > news >正文

中国城投建设集团有限公司网站短视频代运营公司排名

中国城投建设集团有限公司网站,短视频代运营公司排名,织梦网站模板教程,网站怎么做登录MyBatis不仅提供了一级缓存和二级缓存机制,还支持延迟加载(Lazy Loading),以进一步优化性能。 1. 延迟加载(Lazy Loading) 延迟加载是在需要时才加载数据,而不是在查询时立即加载所有相关数据。…

 MyBatis不仅提供了一级缓存和二级缓存机制,还支持延迟加载(Lazy Loading),以进一步优化性能。

 1. 延迟加载(Lazy Loading)
延迟加载是在需要时才加载数据,而不是在查询时立即加载所有相关数据。这对于提高性能和减少不必要的数据加载有很大的帮助。

配置延迟加载:

在MyBatis的全局配置文件中启用延迟加载:
xml
<settings>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="aggressiveLazyLoading" value="false"/>
</settings>

- `lazyLoadingEnabled`:启用延迟加载。
- `aggressiveLazyLoading`:设置为`false`表示在真正需要时才加载关联对象,设置为`true`则在加载主对象时就立即加载所有关联对象。

 2. 一级缓存(Local Cache)
一级缓存是默认开启的,无需特别配置。它的特性如下:
- 范围:Session级别。
- 生命周期:Session的生命周期内有效,Session关闭或清空时,一级缓存也被清空。
- 刷新机制:执行更新操作后,一级缓存自动清空。

 3. 二级缓存(Global Cache)
二级缓存需要显式配置,适用于跨Session的缓存共享。

配置二级缓存:

在MyBatis的XML映射文件中启用二级缓存:
xml
<mapper namespace="com.example.MyMapper">
  <!-- 启用二级缓存 -->
  <cache/>
  
  <!-- 其他映射配置 -->
</mapper>

在MyBatis的全局配置文件中启用缓存:
xml
<settings>
  <setting name="cacheEnabled" value="true"/>
</settings>

缓存策略和冲突解决:

可以在具体的SQL映射中通过`flushCache`和`useCache`属性来控制缓存的使用和刷新:
xml
<select id="selectUser" resultType="User" useCache="true">
  SELECT  FROM user WHERE id = {id}
</select>

<insert id="insertUser" parameterType="User" flushCache="true">
  INSERT INTO user (name, age) VALUES ({name}, {age})
</insert>

- `useCache`:是否使用二级缓存。
- `flushCache`:执行后是否刷新缓存。

手动清空缓存:

在需要的情况下,可以手动清空缓存来解决数据不一致问题:
java
// 清空一级缓存
sqlSession.clearCache();

// 清空二级缓存
sqlSession.getConfiguration().getCache("com.example.MyMapper").clear();

 配置示例整合

全局配置文件(mybatis-config.xml):
xml
<configuration>
  <settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="aggressiveLazyLoading" value="false"/>
  </settings>
</configuration>

映射文件(Mapper XML):
xml
<mapper namespace="com.example.MyMapper">
  <!-- 启用二级缓存 -->
  <cache/>

  <!-- 查询,使用二级缓存 -->
  <select id="selectUser" resultType="User" useCache="true">
    SELECT  FROM user WHERE id = {id}
  </select>
  
  <!-- 插入,刷新缓存 -->
  <insert id="insertUser" parameterType="User" flushCache="true">
    INSERT INTO user (name, age) VALUES ({name}, {age})
  </insert>
</mapper>

通过合理配置延迟加载、一级缓存和二级缓存,MyBatis可以显著提高数据库操作的性能,并减少数据库的负担。在实际应用中,需要根据业务需求和数据访问特点灵活调整这些设置。

http://www.yayakq.cn/news/24161/

相关文章:

  • 如何查一个网站有没有做外链本科自考有哪些科目
  • 有哪些做策划的用的网站小程序商城模板下载
  • 旅游网站开发背景意义河南郑州网站推广优化
  • 做网站卖东西赚钱学做网站需要懂什么软件
  • 网站百度权重怎么提升专用车网站建设价格
  • 怎么利用百度云盘做网站网络广告策略有哪些
  • 做彩票网站非法吗wordpress 创建数据库表
  • 网站制作多少钱400成都网站建设交易
  • 济南公司网站建设公司排名wordpress获取文章评论数
  • 购物网站主页怎么做广州网站建设哪里有
  • 学做网站论坛可信吗网站开发和网络工程哪个好
  • 短视频网站建设方案阿里云服务器可以访问国外网站吗
  • 如何做好网站seo网站年报公示怎么做
  • 温州市网站建设哪家公司好西安做酒店用品的网站
  • 保险网站模板天猫代运营电商公司排行榜
  • 织梦网站改版需要怎么做重庆seo的薪酬水平
  • 与通信工程专业做项目的网站wordpress版权代码
  • 企业网站营销策划编程app免费
  • 连锁酒店网站建设公司wordpress段子
  • 手机怎么做网站服务器吗微信公众平台号申请注册
  • 网站建设方案范例一个网站主页开发费用
  • 成品网站 子目录打不开wordpress 种子搜索引擎
  • 共享ip服务器做网站两个网站php 一个空间
  • 设计学类专业包括什么黑帽seo是作弊手法
  • 德州手机网站建设服务有哪些外国网站做精油的
  • 可以做推广的网站如何优化一个网站
  • 30多了学网站建设晚吗想建设网站前期调研报告如何写
  • 水贝网站建设asp网站500错误
  • 大理州建设局网站门户网电商说白了做啥
  • 天津高端网站设计公司wordpress判断是否是子分类