MyBatis的Dao層注入SqlSession

2021-09-06 17:25:28 字數 1543 閱讀 2131

於是就想把這東西整合進來,當進行dao的時候發現乙個小問題,sqlsession怎麼注入進來的問題,以前hibernate的的習慣用sessionfactory的opensession()方法,但是每個方法都要open一下,麻煩,就想能不能直接把sqlsession通過註解注入進來,有下面這三個類都實現了這個介面:

我估計這三個類都差不多,個人估計是功能呢和支援上或者執行緒同步上面的差別,應該都能生成乙個sqlsession例項讓我在dao層中運用,開啟defaultsqlsession這個類,裡面的幾個屬性沒看懂,於是放棄這個類了;在開啟sqlsessionmanager這個類,發現構造方法都跟輸入流有點關係,我懷疑是根據配置檔案之類的方式來例項化,又放棄了;在開啟sqlsessiontemplate這個類,發現構造方法只和sqlsessionfactory有關係,感覺有點像了,因為容器裡面本來就有sqlsessionfactory,所以可以直接例項化,他的構造方法:

public

sqlsessiontemplate(sqlsessionfactory sqlsessionfactory)

於是在spring配置檔案中加入下面配置,通過構造方法來例項化。

<

bean

id="sqlsession"

class

="org.mybatis.spring.sqlsessiontemplate"

>

<

constructor-arg

index

="0"

ref="sqlsessionfactory"

/>

bean

>

然後在dao層注入:

@repository

public

class articledaoimpl implements

articledao

隨便找了個類測了下通過了,說明這樣做是可行的,然後上網查了下看別人是怎麼做的,有人說到dao繼承sqlsessiondaosupport這個類,這個類裡面包含了有sqlsession,於是看了下這個類的原始碼,發現這個類裡面的sqlsession其實就是sqlsessiontemplate類的實力,跟上面一樣的,

public

void

setsqlsessionfactory(sqlsessionfactory sqlsessionfactory)

} public

void

setsqlsessiontemplate(sqlsessiontemplate sqlsessiontemplate)

也就沒去研究這個類到底有什麼用,我個人是有個不好的癖好,除非萬不得已我不太喜歡去繼承某個類,感覺一旦繼承了就加入了耦合,有這麼個毛病,所以就這樣子了,不知道sqlsession的其他兩個實現有什麼特點,也不清楚網上說繼承這個sqlsessiondaosupport有什麼特點。唉~~,以後再看看吧。

MyBatis的Dao層注入SqlSession

於是就想把這東西整合進來,當進行dao的時候發現乙個小問題,sqlsession怎麼注入進來的問題,以前hibernate的的習慣用sessionfactory的opensession 方法,但是每個方法都要open一下,麻煩,就想能不能直接把sqlsession通過註解注入進來,有下面這三個類都實...

mybatis實現dao層開發

mybatis支援自己寫dao實現類 介面中的方法如下 配置檔案中如下 dao實現類如下 注意這裡selectlist傳入的是我們之前自定義分析中的key namespace id 這樣也可以得到我們的查詢結果,但是這裡我們需要注意,這個和我們之前的查詢方法是兩個思路,之前的方式使用的是 物件的方法...

06Mybatis的Dao層實現

1.1 傳統開發方式 1.1.1編寫userdao介面 public inte ce userdao1.1.2.編寫userdaoimpl實現 public class userdaoimpl implements userdao 1.1.3 測試傳統方式 test public void test...