MyBatis常用的API

本文记录Java学习过程中遇到的MyBatis常用的API~

SqlSession的使用范围:

  • SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等;
  • SqlSession通过SqlSessionFactory创建;
  • SqlSessionFactory是通过SqlSessionFactoryBuilder进行创建。

SqlSessionFactoryBuilder

SqlSessionFactoryBuilder用于创建SqlSessionFacoty,SqlSessionFacoty一旦创建完成就不需要SqlSessionFactoryBuilder了,因为SqlSession是通过SqlSessionFactory创建的。所以可以将SqlSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量。

SqlSessionFactory

SqlSessionFactory是一个接口,接口中定义了openSession的不同重载方法,SqlSessionFactory的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SqlSessionFactory。

SqlSession

SqlSession是一个面向用户的接口,SqlSession中定义了数据库操作方法。

每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。绝对不能将SqlSession实例的引用放在一个类的静态字段或实例字段中。

打开一个SqlSession,在使用完毕就要关闭它。通常把这个关闭操作放到finally块中以确保每次都能执行关闭。

示例代码:

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

标签: none