Mybatis一:理论知识和增删改查

文章目录

  • 1 概述
    • 1.1 简介
    • 1.2 核心对象
    • 1.3 mybatis配置文件
    • 1.4 mybatis映射文件
  • 2 入门程序
    • 2.1 xml方式
    • 2.2 annotation方式
  • 3 增删改查
    • 3.1 xml方式
    • 3.2 annotation方式

1 概述

1.1 简介

  1. mybatis是个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
  2. mybatis通过xml或annotation的方式将要执行的各种statement配置起来,并通过java对象和statement中SQL的动态参数进行映射生成最终执行的SQL语句,最后由mybatis框架执行SQL并将结果映射为java对象并返回。
  3. 采用ORM(Object Relational Mappging对象关系映射)思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。

1.2 核心对象

  • 在使用MyBatis框架时,主要涉及两个核心对象:SqlSessionFactory和SqlSession,它们在MyBatis框架中起着至关重要的作用,图解如下,下面进行详解。

    Mybatis一:理论知识和增删改查_第1张图片

  1. SqlSessionFactory

    1. SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,主要作用是创建SqlSession。

    2. SqlSessionFactory是线程安全的,一旦被创建整个应用执行期间都会存在。如果多次的创建同一个数据库的SqlSessionFactory,那么数据库资源很容易被耗尽,因此在构建SqlSessionFactory实例时,一般使用单例模式。

      // 创建SqlSessionFactory代码
      InputStream inputStream = Resources.getResourceAsStream("配置文件位置");
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      
  2. SqlSession

    1. SqlSession是应用程序与持久层之间执行交互操作的一个单线程对象,是线程不安全的。SqlSession使用完后,要及时关闭它。

    2. SqlSession方法如下(了解即可,IDEA中可以点击ctrl+鼠标左键查看)

      // 注:若使用mybatis的传统开发方式(即编写接口的实现类)需要用到以下方法,但不推荐使用此方式,推荐用xml或annotation
      public interface SqlSession extends Closeable {
      
          // statement是在配置文件中,