05.MyBatis的基本原理介绍

115 阅读1分钟

05.MyBatis的基本原理介绍

1.MyBatis执行步骤:

//        1.加载核心配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//        2.创建SqlSessionFactory工厂
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//        3.通过SqlSessionFactory工厂创建SqlSeeSion对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
//        4.执行sql
        User user = new User();
        user.setAddress("jinan");
        user.setBirthday(new Date());
        user.setSex("1");
        user.setUsername("leelon");
        int insert = sqlSession.insert("userMapper.saveUser",user);
        if (insert > 0){
            System.out.println("注册成功");
        }else{
            System.out.println("注册失败");
        }
        //5.提交事务
        sqlSession.commit();
//        6.释放连接
        sqlSession.close();

2.MyBatis执行原理

  1. 利用Resources类读取配置文件,(配置文件包括:核心配置文件,映射配置文件)

  2. 创建SqlSqlSessionFacotryBuild对象调用build方法( new SqlSqlSessionFacotryBuild().build(in) )。

    • 进行初始化配置:使用了dom4j解析了配置文件,将配置文件中的配置(就是自己写的sql)封装了一个一个的MappedStatement对象,将这些MappedStatement对象封装成Map对象。
  3. 创建了sqlSessionFactory工厂对象。

  4. sqlSessionFactory工厂创建sqlSession对象。

    • 本身不会直接操作数据库,sqlSession对象会委派给执行器来执行sql。
  5. 执行器通过传过来的方法sqlSession.selectList(userMapper.findAll)找到之前封装的Map集合来执行底层JDBC的sql。

image-20220218155048804

\