国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 14:15:42
字體:
來源:轉載
供稿:網友

SqlSessionTemplate
SqlSessionTemplate是MyBatis-Spring的核心。這個類負責管理MyBatis的SqlSession,調用MyBatis的SQL方法,翻譯異常。SqlSessionTemplate是線程安全的,可以被多個DAO所共享使用。
當調用SQL方法時,包含從映射器getMapper()方法返回的方法,SqlSessionTemplate將會保證使用的SqlSession是和當前Spring的事務相關的。此外,它管理session的生命周期,包含必要的關閉,提交或回滾操作。
SqlSessionTemplate實現(xiàn)了SqlSession,這就是說要對MyBatis的SqlSession進行簡易替換。
SqlSessionTemplate通常是被用來替代默認的MyBatis實現(xiàn)的DefaultSqlSession,因為它不能參與到Spring的事務中也不能被注入,因為它是線程不安全的。相同應用程序中兩個類之間的轉換可能會引起數(shù)據一致性的問題。
SqlSessionTemplate對象可以使用SqlSessionFactory作為構造方法的參數(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。調用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屬性來設置。這些被明確地設置或由Spring來自動裝配。如果兩者都被設置了,那么sqlSessionFactory是被忽略的。
假設類UserMapperImpl是SqlSessionDaoSupport的子類,它可以在Spring中進行如下的配置:

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

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 堆龙德庆县| 武夷山市| 临沭县| 嫩江县| 淳安县| 铅山县| 彝良县| 甘德县| 柳江县| 盐亭县| 白水县| 阳新县| 绥棱县| 渭源县| 东乡族自治县| 乐昌市| 灵寿县| 商洛市| 敖汉旗| 益阳市| 田阳县| 涟水县| 桐梓县| 左贡县| 金塔县| 景宁| 武邑县| 嘉定区| 凌海市| 万载县| 郯城县| 扎鲁特旗| 浦江县| 海兴县| 大城县| 顺昌县| 蒙阴县| 嘉善县| 金平| 洪洞县| 偏关县|