MyBatis框架實(shí)現(xiàn)(03)獲取一個(gè)sqlSession

書接上回,我們讀取數(shù)據(jù)源以后,目的是為了獲取一個(gè)連接,在mybatis中就是獲取一個(gè)sqlSession來執(zhí)行數(shù)據(jù)庫。首先定義一個(gè)SqlSessionFactory:

我們直接簡(jiǎn)化定義,創(chuàng)建一個(gè)配置屬性和一個(gè)構(gòu)造方法,我們的使用步驟就可以加上SqlSessionFactory的創(chuàng)建:

然后在這里面寫一個(gè)獲取sqlSession的方法,獲取前,首先初步定義SqlSession類:

然后在SqlSessionFactory中定義獲取sqlSession的方法:

然后我們使用框架時(shí)就可以直接調(diào)用這個(gè)方法了:

sqlSession里面現(xiàn)在只有配置對(duì)象,是否還需要其他東西呢?回想我們前面查看源碼的時(shí)候,mybatis中的sqlSession類中主要的內(nèi)容就是配置對(duì)象和Executor執(zhí)行器,因此這里還需要定義執(zhí)行器,我們不定義接口,直接使用類:

然后把執(zhí)行器加入到sqlSession中:

因此獲取方法也要修改:



這樣獲取一個(gè)sqlSession的方法就創(chuàng)建好了,里面需要的對(duì)象屬性也夠了,但是目前創(chuàng)建的這幾個(gè)類里面只包含配置對(duì)象,其它都是一些空操作,sqlSession里面除了配置對(duì)象和執(zhí)行器意外,主要的行為有哪些呢?共有兩類,一是獲取指定類型的mapper,而是一些基礎(chǔ)的執(zhí)行方法,比如selectOne,selectList等等,這是我們操作數(shù)據(jù)庫的基礎(chǔ)。


這里創(chuàng)建的幾個(gè)方法只是搭起了獲取sqlSession的架子,實(shí)質(zhì)的內(nèi)容下面來實(shí)現(xiàn)。



代碼地址:https://gitee.com/blueses/mybatis-demo?15

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,248評(píng)論 0 4
  • # 前言 在java程序員的世界里,最熟悉的開源軟件除了 Spring,Tomcat,還有誰呢?當(dāng)然是 Mybat...
    莫那一魯?shù)?/span>閱讀 3,442評(píng)論 3 11
  • MyBatis 理論篇 [TOC] 什么是MyBatis ?MyBatis是支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射...
    有_味閱讀 3,176評(píng)論 0 26
  • 單獨(dú)使用mybatis是有很多限制的(比如無法實(shí)現(xiàn)跨越多個(gè)session的事務(wù)),而且很多業(yè)務(wù)系統(tǒng)本來就是使用sp...
    七寸知架構(gòu)閱讀 3,586評(píng)論 0 53
  • Mybatis介紹 MyBatis 本是apache的一個(gè)開源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache...
    day_Sunny閱讀 2,907評(píng)論 0 6

友情鏈接更多精彩內(nèi)容