最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法

 更新時間:2016年06月01日 17:37:27   作者:fhd001  
Data Access Object數(shù)據(jù)訪問對象模式在Java操作數(shù)據(jù)庫部分的程序設(shè)計中經(jīng)常被使用到,這里我們就來看一下Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法:

SqlSessionTemplate
SqlSessionTemplate是MyBatis-Spring的核心。這個類負(fù)責(zé)管理MyBatis的SqlSession,調(diào)用MyBatis的SQL方法,翻譯異常。SqlSessionTemplate是線程安全的,可以被多個DAO所共享使用。
當(dāng)調(diào)用SQL方法時,包含從映射器getMapper()方法返回的方法,SqlSessionTemplate將會保證使用的SqlSession是和當(dāng)前Spring的事務(wù)相關(guān)的。此外,它管理session的生命周期,包含必要的關(guān)閉,提交或回滾操作。
SqlSessionTemplate實(shí)現(xiàn)了SqlSession,這就是說要對MyBatis的SqlSession進(jìn)行簡易替換。
SqlSessionTemplate通常是被用來替代默認(rèn)的MyBatis實(shí)現(xiàn)的DefaultSqlSession,因為它不能參與到Spring的事務(wù)中也不能被注入,因為它是線程不安全的。相同應(yīng)用程序中兩個類之間的轉(zhuǎn)換可能會引起數(shù)據(jù)一致性的問題。
SqlSessionTemplate對象可以使用SqlSessionFactory作為構(gòu)造方法的參數(shù)來創(chuàng)建。

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
  <constructor-arg index="0" ref="sqlSessionFactory"/> 
</bean> 

這個bean現(xiàn)在可以直接注入到DAO bean中。你需要在bean中添加一個SqlSession屬性,就像下面的代碼:

public class UserDaoImpl implements UserDao{ 
  private SqlSession sqlSession; 
  public void setSqlSession(SqlSession sqlSession){ 
    this.sqlSession = sqlSession; 
  } 
  public User getuser(String userId){ 
    return (User)sqlSession.selectOne 
    ("org.mybatis.spring.sample.mapper.UserMapper.getUser",userId); 
  } 
} 

如下注入SqlSessionTemplate:

<bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl"> 
  <property name="sqlSession" ref="sqlSession"/> 
</bean> 

SqlSessionDaoSupport
SqlSessionDaoSupport是一個抽象的支持類,用來為你提供SqlSession。調(diào)用getSqlSession()方法你會得到一個SqlSessionTemplate,這然后可以用于執(zhí)行SQL方法,就像下面這樣:

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{ 
  public User getUser(String userId){ 
    return (User)getSqlSession().selectOne 
      ("org.mybatis.spring.sample.mapper.UserMapper.getUser",userId); 
  } 
} 

通常MapperFactoryBean是這個類的首選,因為它不需要額外的代碼。但是,如果你需要在DAO中做其它非MyBatis的工作或需要具體的類,那么這個類就是很有用了。SqlSessionDaoSupport需要一個sqlSessionFactory或sqlSessionTemplate屬性來設(shè)置。這些被明確地設(shè)置或由Spring來自動裝配。如果兩者都被設(shè)置了,那么sqlSessionFactory是被忽略的。
假設(shè)類UserMapperImpl是SqlSessionDaoSupport的子類,它可以在Spring中進(jìn)行如下的配置:

<bean id="userMapper" class="org.mybatis.spring.sample.mapper.UserMapperImpl"> 
  <property name="sqlSessionFactory" ref="sqlSessionFactory"/> 
</bean> 

 

相關(guān)文章

  • SpringBoot基于Redis實(shí)現(xiàn)token的在線續(xù)期的實(shí)踐

    SpringBoot基于Redis實(shí)現(xiàn)token的在線續(xù)期的實(shí)踐

    本文主要介紹了使用Redis實(shí)現(xiàn)JWT令牌在線續(xù)期的方案,通過在線續(xù)期token,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • JAVA中的注解機(jī)制解讀

    JAVA中的注解機(jī)制解讀

    這篇文章主要介紹了JAVA中的注解機(jī)制解讀,通過調(diào)用Java的反射機(jī)制相關(guān)API來訪問annotation信息,首先加載使用注解的類,得到class類,然后再得到類相應(yīng)的方法,成員變量,需要的朋友可以參考下
    2023-10-10
  • springboot項目idea熱部署的教程詳解

    springboot項目idea熱部署的教程詳解

    這篇文章主要介紹了springboot項目idea熱部署,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot導(dǎo)入mail依賴報錯問題解決

    SpringBoot導(dǎo)入mail依賴報錯問題解決

    這篇文章主要介紹了SpringBoot導(dǎo)入mail依賴報錯問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • java如何根據(jù)HttpServletRequest獲取IP地址

    java如何根據(jù)HttpServletRequest獲取IP地址

    文章介紹了幾種代理服務(wù)器轉(zhuǎn)發(fā)服務(wù)請求頭的方法,這些請求頭可能包含真實(shí)IP地址,但并不是所有的代理都會包括這些請求頭,而且這些IP地址可能被偽造
    2025-03-03
  • MyBatis使用級聯(lián)操作解決lombok構(gòu)造方法識別失敗問題

    MyBatis使用級聯(lián)操作解決lombok構(gòu)造方法識別失敗問題

    這篇文章主要介紹了MyBatis使用級聯(lián)操作解決lombok構(gòu)造方法識別失敗問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 使用Java和ffmpeg把音頻和視頻合成視頻的操作方法

    使用Java和ffmpeg把音頻和視頻合成視頻的操作方法

    這篇文章主要介紹了使用Java和ffmpeg把音頻和視頻合成視頻,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • JMeter導(dǎo)入自定義的Jar包的詳解教程

    JMeter導(dǎo)入自定義的Jar包的詳解教程

    這篇文章主要介紹了JMeter導(dǎo)入自定義的Jar包的詳解教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java sm3加密算法的實(shí)現(xiàn)

    Java sm3加密算法的實(shí)現(xiàn)

    這篇文章主要介紹了Java sm3加密算法的實(shí)現(xiàn),幫助大家更好的利用Java進(jìn)行加密,感興趣的朋友可以了解下
    2020-10-10
  • Java Vector類詳解及實(shí)例代碼

    Java Vector類詳解及實(shí)例代碼

    這篇文章主要介紹了Java Vector類詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評論

桃园市| 澜沧| 永年县| 连南| 杨浦区| 紫金县| 阳原县| 天峨县| 敦化市| 大邑县| 白水县| 涡阳县| 友谊县| 瑞金市| 什邡市| 眉山市| 武鸣县| 新乡市| 桦川县| 新绛县| 绥中县| 屏边| 佛冈县| 濉溪县| 会泽县| 南丹县| 崇左市| 沅陵县| 怀仁县| 灵武市| 儋州市| 吕梁市| 常德市| 石泉县| 卢湾区| 福泉市| 汤阴县| 汉阴县| 霍城县| 漳浦县| 德昌县|