对象说明
SqlSession , SqlSessionFactory 等
(1) Resources 类
Resources 类,顾名思义就是资源,用于读取资源文件。其有很多方法通过加载并解析资源文件,返
回不同类型的 IO 流对象。
(2) SqlSessionFactoryBuilder 类
SqlSessionFactory 的创建,需要使用 SqlSessionFactoryBuilder 对象的 build () 方法。由于
SqlSessionFactoryBuilder 对象在创建完工厂对象后,就完成了其历史使命,即可被销毁。所以,一般会将
该 SqlSessionFactoryBuilder 对象创建为一个方法内的局部对象,方法结束,对象销毁。
(3) SqlSessionFactory 接口
SqlSessionFactory 接口对象是一个重量级对象(系统开销大的对象),是线程安全的,所以一个应用
只需要一个该对象即可。创建 SqlSession 需要使用 SqlSessionFactory 接口的的 openSession () 方法。
➢ openSession (true):创建一个有自动提交功能的 SqlSession
➢ openSession (false):创建一个非自动提交功能的 SqlSession,需手动提交
➢ openSession ():同 openSession (false)
(4) SqlSession 接口
SqlSession 接口对象用于执行持久化操作。一个 SqlSession 对应着一次数据库会话,一次会话以
SqlSession 对象的创建开始,以 SqlSession 对象的关闭结束。
SqlSession 接口对象是线程不安全的,所以每次数据库会话结束前,需要马上调用其 close () 方法,将
其关闭。再次需要会话,再次创建。 SqlSession 在方法内部创建,使用完毕后关闭。
1 主要类的介绍
1) Resources: mybatis 中的一个类,负责读取主配置文件
InputStream in = Resources. GetResourceAsStream (“mybatis. Xml”);
- SqlSessionFactoryBuilder : 创建 SqlSessionFactory 对象,
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder ();
//创建 SqlSessionFactory 对象
SqlSessionFactory factory = builder. Build (in);
3)SqlSessionFactory : 重量级对象,程序创建一个对象耗时比较长,使用资源比较多。
在整个项目中,有一个就够用了。
SqlSessionFactory: 接口,接口实现类: DefaultSqlSessionFactory
SqlSessionFactory 作用: 获取 SqlSession 对象。SqlSession sqlSession = factory. OpenSession ();
OpenSession () 方法说明:
-
OpenSession () :无参数的,获取是非自动提交事务的 SqlSession 对象
2. OpenSession (boolean): openSession (true) 获取自动提交事务的 SqlSession.
OpenSession (false) 非自动提交事务的 SqlSession 对象
- SqlSession:
SqlSession 接口 :定义了操作数据的方法例如 selectOne () , selectList () , insert (), update (), delete (), commit (), rollback ()
SqlSession 接口的实现类 DefaultSqlSession。
使用要求: SqlSession 对象不是线程安全的,需要在方法内部使用,在执行 sql 语句之前,使用 openSession () 获取 SqlSession 对象。
在执行完 sql 语句后,需要关闭它,执行 SqlSession. Close (). 这样能保证他的使用是线程安全的。