mybatis冷知识(mybatis简单理解)

本站原创 生活冷知识 2024-07-23 13:27:03 -
Mybatis基础知识
MyBmybatis知识点
atis冷知识:深入理解SqlSessionFactory与SqlSession MyBatis是一种支持MySql、Oracle、SQL Server等数据库操作的ORM框架,被广泛应用于Java web开发中。而作为MyBatis的核心组件,SqlSessionFactory与SqlSession也是开发中经常要用到的。那么,它们是如何工作的呢?下面就为大家详细介绍。 一、SqlSessionFactory SqlSessionFactory是MyBatis的核心组件之一,它是一个单例工厂类,主要作用是创建SqlSession。在实际应用中,我们不会直接new一个SqlSessionFactory,而是通过MyBatis的配置文件来配置和创建它。 下面是一个简单的SqlSessionFactory配置XML文件示例: ``` 1.0" encoding="UTF-8"?> 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> ``` 示例中的SqlSessionFactory配置XML文件中,除了基本的XML文件骨架和DOCTYPE声明外,主要分为三个部分: - environments:定义和配置SqlSessionFactory工厂需要使用的环境信息。在实际开发中,我们可以针对不同的环境(如开发环境、测试环境、生产环境等)配置不同的数据源和事务管理器。 - mappers:定义Mapper接口和XML映射文件的位置。当SqlSessionFactory创建SqlSession时,它会扫描这个节点下的所有Mapper接口和XML映射文件,并把它们解析成内部的数据结构供后续使用。 - properties: 定义一些属性配置信息。 除此之外,针对SqlSessionFactory有一些需要注意的点: - SqlSessionFactory是线程安全的,可以被多个线程共享使用。 - 它是一个重量级对象,创建过程需要读取和解析配置文件,所以尽量不要频繁创建,可以把它设置为单例实例使用。
二、SqlSession SqlSession是MyBatis的另一个核心组件,它是对JDBC的封装,封装了对数据库的操作,包括:插入、删除、更新、查询等操作。SqlSession是非线程安全的,每次操作数据库之前,都要重新获取一个实例。 创建SqlSession需要通过SqlSessionFactory,具体步骤如下: ``` InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); ``` 示例代码中,我们
首先读取mybatis-config.xml配置文件,然后利用SqlSessionFactoryBuilder创建SqlSessionFactory,
最后调用SqlSessionFactory的openSession方法创建SqlSession实例。同时,我们需要注意以下几点: - SqlSession有一些必要的关闭操作,否则可能会引起内存泄漏的问题。最好在finally块中关闭SqlSession。 - 现有的SqlSession是使用完后就需要关闭,如果你想要较长时间使用它,比如在线程中共享它,你必须延迟并根据需要进行提交或回滚,依赖于你想要如何管理事务的范围。
三、结语 MyBatis是一种优秀的ORM框架,SqlSessionFactory与SqlSession是MyBatis的核心组件,持有它们可以快速地实现对数据库的CRUD操作,使开发更加便捷、高效。希望本文能够对大家了解Mybatis的SqlSessionFactory与SqlSession有所帮助。
mybatis知识点