一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java的MyBatis+Spring框架中使用數據訪問對象DAO模式的方法

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

2020-05-08 12:04fhd001 JAVA教程

Data Access Object數據訪問對象模式在Java操作數據庫部分的程序設計中經常被使用到,這里我們就來看一下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作為構造方法的參數來創建。

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

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

?
1
2
3
4
5
6
7
8
9
10
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:

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

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

?
1
2
3
4
5
6
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中進行如下的配置:

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲娇小性hd | 波多野结衣快播 | www.色婷婷.com| 精品一区二区免费视频蜜桃网 | 日本在线观看视频 | 草莓视频在线免费观看 | 成人免费在线视频网 | 日本68xxxxxxxxx24 日本 片 成人 在线 | 久9青青cao精品视频在线 | 国产成人愉拍精品 | 99热成人精品热久久669 | 91精品国产91热久久久久福利 | 欧美成人免费观看bbb | 四虎网站在线 | 亚洲成人贴图 | 国产成人啪精品午夜在线观看 | 五月激情丁香婷婷综合第九 | 国产精品视频久久久久 | 天天综合色天天综合色sb | 四虎在线永久免费视频网站 | 日本视频中文字幕 | 福利一区二区在线观看 | sese在线观看 | 深夜影院a | 国产黄频在线观看 | 99ri精品| 视频在线观看入口一二三2021 | 国产精品欧美在线观看 | 日本一区二区三区视频在线观看 | 色欧美亚洲 | 九九热这里只有精品视频免费 | 日韩在线观看网站 | 97国产自拍 | 99久久精品免费看国产高清 | 91精品国产综合久久消防器材 | 色天天综合色天天碰 | 美女牲交毛片一级视频 | 日本中文字幕在线观看视频 | 车上小婕子系列辣文小说 | 亚洲不卡高清免v无码屋 | 秋霞理论最新三级理论最 |