MyBatis部分核心组件:类比餐厅的运作流程

1.SqlSessionFactory(SQL 会话工厂)

  • SqlSessionFactory 是 MyBatis 中最核心的组件之一。它的作用是创建 SqlSession 实例。由于 SqlSessionFactory 是线程安全的,通常在应用程序中只需要创建一个实例,并在整个应用程序中复用。
  • 创建 SqlSessionFactory 需要一个配置文件或配置信息,这通常通过 SqlSessionFactoryBuilder 来完成。

SqlSessionFactory 是一家餐厅的中央厨房,负责准备和提供所有必需的食材和工具。在 MyBatis 中,它根据配置文件创建 SqlSession 实例,就像厨房根据菜单准备食材一样。

2.SqlSession(SQL 会话)

  • SqlSession 是 MyBatis 中执行持久化操作的核心对象。每个线程都应该有自己的 SqlSession 实例,且该实例不应该被共享。它封装了 Executor,可以直接执行映射的 SQL 语句。
  • SqlSession 提供了多种方法来执行操作,如 selectOneselectListinsertupdate 和 delete 等。
  • 使用完毕后,应该关闭 SqlSession 以释放数据库连接资源。在 Java 7 及以上版本,可以使用 try-with-resources 语句自动关闭。

SqlSession 就像是一位厨师,负责实际的烹饪工作。每位顾客(线程)都有自己的厨师,以确保每个人的需求都能得到满足。厨师使用厨房提供的工具和食材来制作菜肴。

3.Mapper(映射器)

  • Mapper 是 MyBatis 中用于定义 SQL 映射的接口。开发者通过在接口中定义方法来声明需要执行的数据库操作,然后在 XML 文件或使用注解的方式指定这些方法对应的 SQL 语句。
  • Mapper 接口不需要实现类,MyBatis 会在运行时通过动态代理机制自动创建一个实现了该接口的代理类,代理类中的方法会委托给 SqlSession 来执行相应的 SQL。

Mapper 接口就像餐厅的菜单,列出了所有顾客可以点的菜肴(数据库操作)。厨师(SqlSession)根据菜单(Mapper 接口)上的指示来烹饪特定的菜肴。

4.Configuration(配置)

  • Configuration 类是 MyBatis 配置信息的容器,它包含了 MyBatis 的所有配置信息,如数据库连接信息、映射器、缓存配置等。
  • 这个类是不可变的,并且在创建 SqlSessionFactory 时被加载。

Configuration 类似于一本详细的食谱书,包含了制作每道菜所需的所有信息,比如食材、烹饪步骤、火候等。在 MyBatis 中,它包含了所有配置信息。

5.ResultMap(结果映射)

  • ResultMap 是 MyBatis 中定义 SQL 查询结果和 Java 对象之间映射的组件。它允许开发者指定如何将数据库查询结果转换为 Java 对象。

6.ParameterMap(参数映射)

  • ParameterMap 类似于 ResultMap,但它用于定义如何将 Java 对象转换为 SQL 语句的参数。

ResultMap 和 ParameterMap 就像是一本食材转换指南,告诉厨师如何将原材料(数据库列)转换成顾客可以享用的菜肴(Java 对象),反之亦然。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值