简单描述Hibernate单元测试
创始人
2024-06-08 02:31:27
0

Hibernate还是比较常用的,于是我研究了一下Hibernate单元测试,在这里拿出来和大家分享一下,希望对大家有用。

本文介绍在Hibernate单元测试中最重要的就是要保持测试实例是独立的。因为该方法仍然涉及数据库,所以需要一种方法在每个Hibernate单元测试实例之前清理数据库。在我的数据库架构中有四个表,所以我在TestSchemaz上编写了reset()方法,该方法从使用JDBC的表中删除所有行。注意,因为HSQLDB能识别外键,删除表的顺序是很重要的,下面是代码:

  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. }  

当确定在Hibernate 3.0中进行大量删除操作时,应该能从应用程序中删除直接JDBC的***一位。到此时为止,必须获取数据库连接并向数据库直接提交SQL。在确保没有关闭连接的情况下,为了释放资源,只关闭会话就足够了。出于手工编写许多JCBC代码来进行开发的习惯,***个版本关闭了JDBC连接。因为通过配置Hibernate创建的连接池只带有一个链接,在***个之后就完全破坏了测试。一定要注意这种情况!既然在测试类运行时(设想运行所有的测试实例)不能确定数据库的状态,应该在setUp()方法中包含数据库清除,如下所示:

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

【编辑推荐】

  1. Hibernate类库简单描述
  2. 浅析Hibernate延迟加载
  3. Spring Hibernate简单讨论
  4. 介绍Hibernate版本的更新
  5. 简单讲述Hibernate实例

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...