激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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>

延伸 · 閱讀

精彩推薦
603
主站蜘蛛池模板: www国产免费| 成人影片在线免费观看 | 激情在线观看视频 | 韩国三级日本三级香港三级黄 | 手机国产乱子伦精品视频 | 亚洲嫩草av| 日本在线免费观看视频 | 精品国产一区二区三区久久久蜜月 | 亚洲精品tv久久久久久久久久 | 亚洲va久久久噜噜噜久久男同 | 免费一及片 | 中国久久久 | 黄色av片在线观看 | 成人在线观看免费高清 | 久久av喷吹av高潮av懂色 | 91久久久久久久一区二区 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | 欧美性受xxxx白人性爽 | h视频免费在线 | 午夜视频久久久 | 亚洲一区二区三区精品在线观看 | 免费视频观看 | 亚洲3atv精品一区二区三区 | 国产一级做a爰片在线看 | www日韩在线观看 | 久久精品久久久久 | 亚洲一区二区在线视频 | 毛片视频在线免费观看 | 精品国产乱码久久久久久丨区2区 | 欧洲成人精品 | 成人午夜在线观看视频 | 看黄在线 | 草免费视频 | 黄色免费影片 | 亚洲精品a级 | 亚洲国产精品一区二区久久 | 欧美日韩艺术电影在线 | 久久久久久久一区二区三区 | 国产品久久 | 免费91在线| 欧美999|