程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的MyBatis+Spring框架中應用數據拜訪對象DAO形式的辦法

Java的MyBatis+Spring框架中應用數據拜訪對象DAO形式的辦法

編輯:關於JAVA

Java的MyBatis+Spring框架中應用數據拜訪對象DAO形式的辦法。本站提示廣大學習愛好者:(Java的MyBatis+Spring框架中應用數據拜訪對象DAO形式的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的MyBatis+Spring框架中應用數據拜訪對象DAO形式的辦法正文


SqlSessionTemplate
SqlSessionTemplate是MyBatis-Spring的焦點。這個類擔任治理MyBatis的SqlSession,挪用MyBatis的SQL辦法,翻譯異常。SqlSessionTemplate是線程平安的,可以被多個DAO所同享應用。
當挪用SQL辦法時,包括從映照器getMapper()辦法前往的辦法,SqlSessionTemplate將會包管應用的SqlSession是和以後Spring的事務相干的。另外,它治理session的性命周期,包括需要的封閉,提交或回滾操作。
SqlSessionTemplate完成了SqlSession,這就是說要對MyBatis的SqlSession停止簡略單純調換。
SqlSessionTemplate平日是被用來替換默許的MyBatis完成的DefaultSqlSession,由於它不克不及介入到Spring的事務中也不克不及被注入,由於它是線程不平安的。雷同運用法式中兩個類之間的轉換能夠會惹起數據分歧性的成績。
SqlSessionTemplate對象可使用SqlSessionFactory作為結構辦法的參數來創立。

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

這個bean如今可以直接注入到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。挪用getSqlSession()辦法你會獲得一個SqlSessionTemplate,這然後可以用於履行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屬性來設置。這些被明白地設置或由Spring來主動拆卸。假如二者都被設置了,那末sqlSessionFactory是被疏忽的。
假定類UserMapperImpl是SqlSessionDaoSupport的子類,它可以在Spring中停止以下的設置裝備擺設:

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved