04.MyBatis的API概述

126 阅读1分钟

04.MyBatis的API概述

1.SqlSession工厂构建器SqlSessionBuild

  • 常用API:SqlSessionFactory build(InputStream inputStream)

  • 通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象

    String resource = "org/mybatis/builder/mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    SqlSessionFactory factory = builder.build(inputStream);
    
  • 其中,Resource工具类,这个类在

  • org.apache.ibatis.io 包中。Resources 类帮助你从类路径下、文件系统或一个 web URL 中加载资源文件。

2.SqlSession工厂对象SqlSessionFactory

  • SqlSessionFactory有多个方法创建SqlSession实例。常用的有两个:

    image-20220218150405234

解释:

image-20220218150908718

  • 当设置openSession(true)时,不需要手动提交事务。
      SqlSession sqlSession = sqlSessionFactory.openSession(true);

3.SqlSession会话对象

  • SqlSession 实例在 MyBatis 中是非常强大的一个类。在这里你会看到所有执行语句、提交或回滚事务和获取映射器实例的方法。 执行语句的方法主要有:
<T> T selectOne(String statement, Object parameter)
<E> List<E> selectList(String statement, Object parameter)
int insert(String statement, Object parameter)
int update(String statement, Object parameter)
int delete(String statement, Object parameter)
  • 操作事务的方法主要有:
void commit() //事务提交
void rollback()//事务回滚    

4.执行步骤

  1. 加载核心配置文件
  2. 创建SqlSessionFactory工厂
  3. 通过SqlSessionFactory工厂创建SqlSeeSion对象
  4. 执行sql
  5. 提交事务
  6. 释放连接
//        1.加载核心配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//        2.创建SqlSessionFactory工厂
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//        3.通过SqlSessionFactory工厂创建SqlSeeSion对象
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
//        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("注册失败");
        }
        //提交事务
        sqlSession.commit();
//        5.释放连接
        sqlSession.close();

\