前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【原创】Mybatis框架

【原创】Mybatis框架

作者头像
零点
发布2023-03-03 20:41:13
3900
发布2023-03-03 20:41:13
举报
文章被收录于专栏:微科技微科技

Mybatis基础

1.Mybatis介绍

1、Mybatis是一个半自动ORM(对象关系映射框架),对比全自动ORM,Mybatis需要自己手写SQL语句,其内部封装了JDBC。 2、Mybatis可以使用xml或注解来配置实体类和数据库记录的映射关系。

2.Mybatis优点

1、Mybatis将sql语句写到Xml文件中,完成sql语句和代码的解耦(JDBC访问数据库会将代码直接写在java代码中)。 2、Mybatis底层提供了连接池,解决了JDBC频繁创建和关闭连接的操作。

3.Mybatis缺点

1、Sql语句编写工作量大,尤其当字段多,关联表时。 2、Sql语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

4.Mybatis使用场景

1、Mybatis专注于SQL本身,是一个足够灵活的Dao层解决方案。 2、对性能要求高,或者需求变化多的项目使用Mybatis。

5.#{}和${}的区别

#{}是采用预编译的形式执行sql语句,会自动在参数的值上添加''单引号。 {}是字符串拼接的形式执行sql语句,使用{}需要手动在参数的值上添加''单引号。

6.Mybatis的一二级缓存

1、一级缓存: 一级缓存是默认开启的,存储在sqlSession中存储,底层是个HashMap,key为hasecode+sqlid+sql语句,value为映射出的java对象。 (1)Mybatis一级缓存命中规则:

①Mybatis命中缓存要求两次查询操作的xml文件中的select标签的id一致。 ②Mybatis命中缓存要求两次查询sql语句的参数一致。 ③Mybatis命中缓存要求两次查询分页参数必须相同。 ④Mybatis命中缓存要求两次提交给数据库的sql语句完全相同。

(2)Mybatis一级缓存的生命周期: ①缓存的产生:

根据sqlSession调用的方法(Select开头的方法)就会产生缓存。

②缓存的销毁:

1)第一种情况sqlSession调用close()方法关闭连接,缓存消失。 2)第二种情况sqlSession调用了commit()方法,缓存会被清空。 3)第三种情况sqlSession调用了rollback()方法,缓存会被清空。 4)第四种情况执行了增加、更新、删除操作后,缓存会被清空。

2、二级缓存: 二级缓存需要手动开启,多个sqlSession可以共享数据 (1)Mybatis二级缓存命中规则:

①Mybatis命中缓存要求两次查询操作的xml文件中的select标签的id一致。 ②Mybatis命中缓存要求两次查询sql语句的参数一致。 ③Mybatis命中缓存要求两次查询分页参数必须相同。 ④Mybatis命中缓存要求两次提交给数据库的sql语句完全相同。

(2)Mybatis二级缓存的生命周期: ①缓存的产生:

sqlSession调用了close()或者commit()方法就会将数据保存到二级缓存中。

①缓存的销毁: 执行了增加、更新、删除操作后,缓存会被清空。 3、Mybatis清除缓存机制: (1)最近最少使用策略:移除最长时间不被使用的对象。 (2)先进先出策略:按照对象进入的缓存顺序来进行移除。 (3)软引用:基于GC和软引用规则移除缓存。 (4)弱引用:基于GC和弱引用规则移除缓存。

7.Mybatis的懒加载

懒加载:分布式查询,需要时再进行查询。在多表查询时提高查询效率。 Mapper的xml文件中使用collection 或 association标签完成对需要延迟加载数据的配置。 开启懒加载需要在mybatis.xml文件中开启懒加载功能,操作如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mybatis基础
    • 1.Mybatis介绍
      • 2.Mybatis优点
        • 3.Mybatis缺点
          • 4.Mybatis使用场景
            • 5.#{}和${}的区别
              • 6.Mybatis的一二级缓存
                • 7.Mybatis的懒加载
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档