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语句的对象
来源: 博客园
作者: 茶哩哩
文章: 转载请注明原文链接:https://www.cnblogs.com/martin-1/p/15581468.html