Java EE之第7章MyBatis的核心配置

本文详细介绍了MyBatis的两个核心对象SqlSessionFactory和SqlSession,以及它们的作用和使用注意事项。SqlSessionFactory通过SqlSessionFactoryBuilder构建,SqlSession执行数据库交互操作。文章还涵盖了MyBatis的核心配置文件,包括数据源类型、映射文件等内容,强调了配置文件中的元素如typeHandlers、objectFactory和transactionManager等的重要性。
摘要由CSDN通过智能技术生成

7.1 MyBatis的核心对象

MyBatis框架两个核心对象:SqlSessionFactory和SqlSession

7.1.1SqlSessionFactory

SqlSessionFactory:是单个数据库映射关系经过编译后的内存镜像,主要作用是创建SqlSession

SqlSessionFactory对象的实例通过SqlSessionFactoryBuilder对象来构建,而SqlSessionFactoryBuilder通过XML配置文件或一个预先定义好的Configuration实例构建出SqlSessionFactory的实例。通过XML配置文件构建出的SqlSessionFactory实例,其实现代码如下:

// 读取配置文件
 InputStream inputStream = Resources.getResourceAsStream(“配置文件的位置”);
 // 根据配置文件构建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = 
	            new SqlSessionFactoryBuilder().build(inputStream);

SqlSessionFactory对象一旦被创建,在整个应用执行期间都会存在。如果多次创建同一个数据库的SqlSessionFactory,那么此数据库的资源将很容易被耗尽。为了解决此问题,通常每个数据库都会只对应一个SqlSessionFactory,所有在构建SqlSessionFactory实例,通常使用单列模式

7.1.2 SqlSession

SqlSession:是应用程序与持久层之间执行交互操作的一个单线程对象,主要作用是执行持久化操作

SqlSession对象:包含了数据库中所有执行SQL操作的方法。底层封装了JDBC连接,可以直接使用实例来执行已映射的SQL语句

使用SqlSession对象注意事项:

(1)每一个线程都有自己的SqlSession实例,并且实例是不能被共享的

(2)SqlSession实例是线程的不安全,使用范围最好在一次请求或一个方法中,绝不能将其放在一个类的静态字段,实例字段或任何类型的管理范围(如Servlet的HttpSession)中使用

(3)使用完SqlSession对象之后,要及时地关闭它,通常可以将其放在finally块中关闭,代码如下所示:

SqlSession sqlSession = SqlSessionFactory.openSession();
try{
   
	//此处执行持久化操作
}finally{
   
	sqlSession.close();
}

SqlSession对象常用方法:

(1)<T> T selectOne(String statement)查询方法,参数statement是在配置文件中定义的<select>元素的id,使用该方法后,会返回执行SQL语句查询结果的一条泛型对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值