JavaWeb学习笔记之Mybatis关键对象

Posted 小明TI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb学习笔记之Mybatis关键对象相关的知识,希望对你有一定的参考价值。

SqlSessionFactoryBuilder
用来创建SqlSessionFactory的,一旦创建完SqlSessionFactory实例之后,这个类就不需要存在了,所以可以把它作为一个局部变量使用。

String resource = “org/mybatis/example/mybatis-config.xml”;

InputStream inputStream = Resources.getResourceAsStream(resource);

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSessionFactory
SqlSessionFactory是单例的,会随着应用的生命周期一同存在,并且同时只存在一个对象实例。

SqlSession
每个线程都有它自己的SqlSession实例,SqlSession实例不能被共享,也不是线程安全的。所以它的生命周期是request或者局部的。绝对不能将 SqlSession 实例的引用放在一个 类的静态字段甚至是实例字段中。 也绝不能将 SqlSession 实例的引用放在任何类型的管理范 围中, 比如 Serlvet 架构中的 HttpSession。关闭 Session 很重要,你应该确保使 用 finally 块来关闭它。下面的示例就是一个确保 SqlSession 关闭的基本模式:

SqlSession session = sqlSessionFactory.openSession();
try
// do work
finally
session.close();

Mapper 实例
映射器是你创建绑定映射语句的接口。映射器接口的实例可以从 SqlSession 中获得。那 么从技术上来说,当被请求时,任意映射器实例的最宽范围和 SqlSession 是相同的。然而, 映射器实例的最佳范围是方法范围。也就是说,它们应该在使用它们的方法中被请求,然后 就抛弃掉。它们不需要明确地关闭,那么在请求对象中保留它们也就不是什么问题了,这和 SqlSession 相似。你也许会发现,在这个水平上管理太多的资源的话会失控。保持简单,将 映射器放在方法范围内。下面的示例就展示了这个实践:

SqlSession session = sqlSessionFactory.openSession();
try
BlogMapper mapper = session.getMapper(BlogMapper.class);
// do work
finally
session.close();

以上是关于JavaWeb学习笔记之Mybatis关键对象的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb学习笔记之Mybatis实用sql语句汇总

JavaWeb学习笔记之Servlet九大内置对象

Mybatis学习笔记 之Dao开发

JavaWeb学习笔记之Spring中bean的作用域

Javaweb学习笔记之Spring的依赖注入方式

java学习笔记之面向对象static,final关键字