MyBatis_MyBatis主要类的介绍

主要内容

1、Resource
2、SqlSessionFactoryBuilder
3、SqlSessionFactory
4、SqlSession

1. Resource

resource是 mybatis中的一个类,主要负责读取主配置文件的内容

// 1、格式 使用方法: getResourcesAsStream(String resource)
InputStream in = Resources.getResourceAsStream("mybatis配置文件");
// 2、实例
InputStream in = Resources.getResourceAsStream("mybatis.xml");

2. SqlSessionFactoryBuilder

SqlSessionFactoryBuilder用于创建SqlSessionFactory对象

// 1、格式
// 创建SqlSessionFactoryBuilder类的对象
SqlSessionFactoryBuilder  builder = new SqlSessionFactoryBuilder();
// 通过mybatis主配置文件流对象 获取 SqlSessionFactory类的对象
SqlSessionFactory factory = builder.build(mybatis主配置文件流对象);

// 2、实例
SqlSessionFactoryBuilder  builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);

3. SqlSessionFactory

SqlSessionFactory是重量级对象也是最关键的对象,使用此对象创建实体类对象的时间较长,使用的资源也比较多,一般在整个项目中只需要一个。

SqlSessionFactory本质是一个接口,通过其实现类DefaultSqlSessionFactory可以获取SqlSession对象,程序代码的表示

SqlSession sqlSession = factory.openSession();

openSession()方法说明

1)、openSession()是无参数的,获取的是非自动提交事务的SqlSession对象

2)、使用openSession(boolean),当boolean为true,表示获取的是自动提交事务的SqlSession对象,如果boolean为false,则表示获取的是非自定提交事务的SqlSession对象。

4. SqlSession

SqlSession也是一个接口,定义了操作数据的方法,如selectOne(),selectList(),insert(),update(),delete(),commit(),rollback()等。其实现类DefaultSqlSession用于实现这些方法。

1、为什么要使用 SqlSession.close() 关闭SqlSession

使用SqlSession的要求: SqlSession对象不是线程安全的,需要在方法内部使用。在执行sql语句之前,需要通过openSession()方法来获取SqlSession对象。在执行sql语句之后,要执行SqlSession.close()关闭。这样就能保证其使用是线程安全的。

代码表示

// 1、使用SqlSession
SqlSession sqlSession = factory.openSession();
//... sqlSession执行sql语句操作
// 2、关闭SqlSession
sqlSession.close();    

2、SqlSession和其他类的之间的关系(图)

前面的类或接口主要目的是为了创建SqlSession,SqlSession才是程序的关键,是执行sql语句的对象

image-20211120145031764

posted @ 2021-11-20 15:22  茶哩哩  阅读(110)  评论(0编辑  收藏  举报