一、SQLSession的定義
SQLSession是Mybatis中用於與資料庫交互的會話對象。它是Mybatis中最重要的核心組件之一,是線程安全的,需要在使用完成後關閉。一個SQLSession代表著與資料庫的一次會話,可以進行多次的CRUD操作。因此SqlSession在不同的需要進行資料庫操作的類之間傳遞或管理SqlSession對象,可以改進代碼的性能。
二、SQLSession的創建
在使用Mybatis框架時,需要通過SqlSession打開資料庫連接以便進行資料庫操作。
首先需要在Mybatis XML配置文件配置數據源DataSource,如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="BookMapper.xml"/>
</mappers>
</configuration>
配置完成後,需要通過SqlSessionFactoryBuilder來創建SqlSessionFactory,如下:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
創建完成後,可以通過SqlSessionFactory創建SqlSession。創建SqlSessionFactory可以採用單例模式來保證線程安全並且提升代碼的性能。
SqlSession sqlSession = sqlSessionFactory.openSession();
三、SQLSession的操作
SqlSession可以進行多次的CRUD操作,包括插入、更新、刪除和查詢。
在進行各種操作時,需要通過映射器Mapper來指定具體的SQL語句。通過配置XML Mapper文件,可以方便的管理各種SQL語句。
例如,可以查詢所有的書籍信息,具體代碼如下:
List books = sqlSession.selectList("com.example.mapper.BookMapper.selectAllBooks");
在這個例子中,”com.example.mapper.BookMapper.selectAllBooks”是查詢語句的ID,其對應的SQL語句可以在Mapper XML文件中定義。
四、SQLSession的關閉
在SqlSession使用完成後,需要關閉資料庫連接資源,以便釋放連接並且交還給資料庫連接池。可以同樣採用單例模式,將SQLSession對象資源加入到線程池中,以便可以在任何地方進行調用。
sqlSession.close();
五、小結
SQLSession可以提供與資料庫交互的會話控制,是Mybatis框架最核心的組件之一,創建與銷毀均需要嚴格控制連接,以免造成系統資源的空洞等一系列問題。在對數據進行讀寫時,使用SQLSession封裝了大量的細節操作,只需要調用簡單的API,即可快速完成數據讀寫操作。
原創文章,作者:LYYYZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/324644.html