MyBatis基础

前言

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。

MyBatis 的基础概念

  1. SqlSessionFactoryBuilder
    • 这个类可以被用来创建 SqlSessionFactory 的实例。
    • SqlSessionFactoryBuilder 使用一个配置文件(通常是 MyBatis 的配置文件 mybatis-config.xml)来创建一个 SqlSessionFactory 实例。
    • 一旦创建了 SqlSessionFactory,就不再需要 SqlSessionFactoryBuilder 了,因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。
  2. SqlSessionFactory
    • SqlSessionFactory 一旦被创建就应该在应用程序的整个生命周期中存在,没有任何理由丢弃它或重新创建另一个实例。
    • SqlSessionFactory 是用来创建 SqlSession 的工厂。
  3. SqlSession
    • SqlSession 提供了在数据库执行命令所需的所有方法,比如:selectList、selectOne、insert、update、delete 等。
    • SqlSession 是通过 SqlSessionFactory 实例获得的。
    • SqlSession 在使用完毕后需要正确关闭,以释放其占用的 JDBC 资源。
  4. Mapper 接口
    • Mapper 接口是 MyBatis 的一个核心组件,它的作用是定义操作数据库的接口方法。
    • Mapper 接口中的方法名通常与 XML 映射文件中定义的 SQL 语句的 id 相对应。
    • MyBatis 通过动态代理机制,在运行时动态创建 Mapper 接口的代理对象,代理对象的方法调用会被转发到 MyBatis 的 SQL 映射执行器上执行。

MyBatis 的基本工作流程

  1. 加载 MyBatis 配置文件
    • 配置文件包含了数据库连接信息和 MyBatis 运行时所需的各种配置。
  2. 创建 SqlSessionFactory
    • 使用 MyBatis 配置文件中的信息,SqlSessionFactoryBuilder 会构建出 SqlSessionFactory 实例。
  3. 创建 SqlSession
    • 通过 SqlSessionFactory 实例可以创建 SqlSession 对象。
  4. 执行 SQL 语句
    • 有了 SqlSession 后,就可以使用它来执行定义在 Mapper 接口中的方法了。
    • MyBatis 会将 Mapper 接口中的方法与 XML 映射文件中的 SQL 语句关联起来,并执行相应的 SQL 语句。
  5. 处理结果
    • SQL 语句执行完毕后,MyBatis 会将执行结果映射成 Java 对象,并返回给调用者。
  6. 关闭 SqlSession
    • 使用完毕后,需要关闭 SqlSession 以释放 JDBC 资源。

MyBatis 的优势

  • 简单易学:MyBatis 相对于其他 ORM 框架来说,上手更简单,学习成本更低。
  • 灵活:MyBatis 允许你编写几乎任何 SQL 语句,并且可以直接在 XML 映射文件中或通过注解来配置。
  • 解除 SQL 与代码耦合:通过 Mapper 接口和 XML 映射文件,MyBatis 实现了 SQL 语句与 Java 代码的解耦。
  • 性能优异:MyBatis 的底层是通过 JDBC 实现的,因此在性能上表现优异。

MyBatis 是 Java 开发中非常流行的一款持久层框架,它简化了数据库操作,提高了开发效率,是 Java 开发者在进行数据库编程时的一个好选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值