Mybatis原理

MyBatis 是一款优秀的持久层框架,用于简化 JDBC 对象关系映射的复杂性。它的工作原理主要包含以下几个关键步骤和组件:

  1. 配置文件解析

    • MyBatis 启动时,首先读取全局配置文件 mybatis-config.xml,该文件中定义了数据源(DataSource)、事务管理器(TransactionManager)、映射器(Mapper)的位置以及其他一些全局配置选项如缓存设置等。
  2. 映射文件解析

    • 在全局配置文件中指定的映射文件(Mapper XML 文件)会被逐一加载。映射文件中包含了 SQL 语句和结果映射规则,MyBatis 会解析这些文件并生成相应的 MappedStatement 对象,这些对象代表了 SQL 执行的元信息,包括 SQL 语句本身、参数映射、结果映射等。
  3. SqlSessionFactory 创建

    • 根据解析后的配置信息,MyBatis 会创建一个 SqlSessionFactory,它是会话工厂,负责创建 SqlSession 对象。
  4. SqlSession 获取

    • 应用程序通过 SqlSessionFactory 获取 SqlSession 对象,相当于传统的 JDBC 中的 Connection,但 SqlSession 提供了更高级别的抽象操作,它可以执行预定义的 SQL 语句、提交或回滚事务等。
  5. 执行 SQL 和结果处理

    • 当应用程序通过 SqlSession 调用一个 Mapper 接口中的方法时,MyBatis 根据方法签名找到对应的 MappedStatement,并使用预处理语句(PreparedStatement)执行 SQL,同时将结果自动映射到 Java 对象上,这得益于之前配置好的结果映射。
  6. 动态SQL解析

    • MyBatis 支持动态 SQL,可以根据传入的参数条件动态拼接 SQL 语句。在执行阶段,MyBatis 会解析动态元素并正确构建最终要执行的 SQL。
  7. 缓存机制

    • MyBatis 提供了一级缓存(本地缓存,存在于 SqlSession 级别)和二级缓存(全局缓存,跨 SqlSession 的共享缓存),用于提高查询性能。在特定条件下,MyBatis 可以缓存查询结果,避免频繁重复的数据库交互。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值