自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單描述Hibernate單元測(cè)試

開(kāi)發(fā) 后端
本文介紹在Hibernate單元測(cè)試中最重要的就是要保持測(cè)試實(shí)例是獨(dú)立的。因?yàn)樵摲椒ㄈ匀簧婕皵?shù)據(jù)庫(kù),所以需要一種方法在每個(gè)Hibernate單元測(cè)試實(shí)例之前清理數(shù)據(jù)庫(kù)。

Hibernate還是比較常用的,于是我研究了一下Hibernate單元測(cè)試,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。

本文介紹在Hibernate單元測(cè)試中最重要的就是要保持測(cè)試實(shí)例是獨(dú)立的。因?yàn)樵摲椒ㄈ匀簧婕皵?shù)據(jù)庫(kù),所以需要一種方法在每個(gè)Hibernate單元測(cè)試實(shí)例之前清理數(shù)據(jù)庫(kù)。在我的數(shù)據(jù)庫(kù)架構(gòu)中有四個(gè)表,所以我在TestSchemaz上編寫(xiě)了reset()方法,該方法從使用JDBC的表中刪除所有行。注意,因?yàn)镠SQLDB能識(shí)別外鍵,刪除表的順序是很重要的,下面是代碼:

  1. public static void reset() throws SchemaException {  
  2. Session session = HibernateUtil.getSession();  
  3. try {  
  4. Connection connection = session.connection();  
  5. try {  
  6. Statement statement = connection.createStatement();  
  7. try {  
  8. statement.executeUpdate("delete from Batting");  
  9. statement.executeUpdate("delete from Fielding");  
  10. statement.executeUpdate("delete from Pitching");  
  11. statement.executeUpdate("delete from Player");  
  12. connection.commit();  
  13. }  
  14. finally {  
  15. statement.close();  
  16. }  
  17. }  
  18. catch (HibernateException e) {  
  19. connection.rollback();  
  20. throw new SchemaException(e);  
  21. }  
  22. catch (SQLException e) {  
  23. connection.rollback();  
  24. throw new SchemaException(e);  
  25. }  
  26. }  
  27. catch (SQLException e) {  
  28. throw new SchemaException(e);  
  29. }  
  30. finally {  
  31. session.close();  
  32. }  

當(dāng)確定在Hibernate 3.0中進(jìn)行大量刪除操作時(shí),應(yīng)該能從應(yīng)用程序中刪除直接JDBC的***一位。到此時(shí)為止,必須獲取數(shù)據(jù)庫(kù)連接并向數(shù)據(jù)庫(kù)直接提交SQL。在確保沒(méi)有關(guān)閉連接的情況下,為了釋放資源,只關(guān)閉會(huì)話就足夠了。出于手工編寫(xiě)許多JCBC代碼來(lái)進(jìn)行開(kāi)發(fā)的習(xí)慣,***個(gè)版本關(guān)閉了JDBC連接。因?yàn)橥ㄟ^(guò)配置Hibernate創(chuàng)建的連接池只帶有一個(gè)鏈接,在***個(gè)之后就完全破壞了測(cè)試。一定要注意這種情況!既然在測(cè)試類(lèi)運(yùn)行時(shí)(設(shè)想運(yùn)行所有的測(cè)試實(shí)例)不能確定數(shù)據(jù)庫(kù)的狀態(tài),應(yīng)該在setUp()方法中包含數(shù)據(jù)庫(kù)清除,如下所示:

  1. public void setUp() throws Exception {  
  2. TestSchema.reset();  

【編輯推薦】

  1. Hibernate類(lèi)庫(kù)簡(jiǎn)單描述
  2. 淺析Hibernate延遲加載
  3. Spring Hibernate簡(jiǎn)單討論
  4. 介紹Hibernate版本的更新
  5. 簡(jiǎn)單講述Hibernate實(shí)例
責(zé)任編輯:佚名 來(lái)源: enet
相關(guān)推薦

2009-09-29 16:21:31

Hibernate單元

2009-06-02 14:24:32

Hibernate單元測(cè)試HSQLDB

2017-01-14 23:42:49

單元測(cè)試框架軟件測(cè)試

2009-06-23 18:19:32

單元測(cè)試Hibernate配置

2009-09-22 11:16:27

Hibernate經(jīng)驗(yàn)

2009-09-27 13:00:56

Hibernate S

2009-09-22 12:45:00

Hibernate性能

2009-09-28 15:43:42

Hibernate O

2009-09-23 10:58:32

Hibernate T

2009-09-22 17:41:07

Hibernate性能

2017-01-14 23:26:17

單元測(cè)試JUnit測(cè)試

2017-01-16 12:12:29

單元測(cè)試JUnit

2020-08-18 08:10:02

單元測(cè)試Java

2009-09-24 13:17:37

Hibernate類(lèi)庫(kù)

2009-09-21 13:56:09

Hibernate3.

2023-07-26 08:58:45

Golang單元測(cè)試

2017-03-23 16:02:10

Mock技術(shù)單元測(cè)試

2011-07-04 18:16:42

單元測(cè)試

2020-05-07 17:30:49

開(kāi)發(fā)iOS技術(shù)

2021-05-05 11:38:40

TestNGPowerMock單元測(cè)試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)