`
Cash
  • 浏览: 180741 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

测试SessionFactory失败!

阅读更多
package springWebwork2;

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import org.apache.commons.logging.*;
import java.util.*;

import manager.*;

public class HibernateUtil {

private static Log log = LogFactory.getLog(HibernateUtil.class);

private static final SessionFactory sessionFactory;

static {
  try {
   // Create the SessionFactory
   sessionFactory = new Configuration().configure().buildSessionFactory();
  } catch (Throwable ex) {
   log.error("创建SessionFactory失败:", ex);
   throw new ExceptionInInitializerError(ex);
  }
}

//使用ThreadLocal实现线程安全
public static final ThreadLocal LocalSession = new ThreadLocal();

public static Session currentSession() throws HibernateException {
  Session s = (Session) LocalSession.get();
  // Open a new Session, if this Thread has none yet
  if (s == null) {
   s = sessionFactory.openSession();
   LocalSession.set(s);
  }
  return s;
}

public static void closeSession() throws HibernateException {
  Session s = (Session) LocalSession.get();
  LocalSession.set(null);
  if (s != null)
   s.close();
}
//测试代码
public static void main(String[] args) throws Exception {
  Session session = HibernateUtil.currentSession();
  Transaction tx = session.beginTransaction();
  //创建数据对象并插入表
  Manager B = new Manager();
  //B.setBlockname("新区");
  //B.setShoworder(0);
  //相当于insert
  //session.save(B);

  //用list方法查询数据
  Query q = session.createQuery("from manager"); //用对象类名,而非表名
  List l = q.list();//返回一个List接口,用来遍历结果集

  for (int i = 0; i < l.size(); i++) {
   B = (Manager) l.get(i);
   System.out.println(B.toString());
  }
  //更新数据
  //Query qq = session.createQuery("from SimpleUser");
  //B = (Block) session.load(Block.class, new Integer(1));
  //B.setBlockname("其它");
  //tx.commit();
  //关闭
  HibernateUtil.closeSession();
}
}

执行到
sessionFactory = new Configuration().configure().buildSessionFactory();
时出现异常!我用的是eclipse M1.7 + hibernate2 + postgreSql
我刚刚学习Hibernate ,请给点帮助谢谢!
分享到:
评论

相关推荐

    Nhibernate测试驱动开发.pdf

    例如,`FactoryTest`方法中,通过`Assert.IsNotNull(sf, "get sessionfactory fail")`来验证ISessionFactory是否成功创建,如果失败,测试将抛出异常,提示获取SessionFactory失败。 Nhibernate通过O/R Mapping简化...

    Juint4 jar通用包

    在实际开发过程中,可以利用MyEclipse的测试运行器来执行这些单元测试,查看测试结果,包括成功的测试用例、失败的测试用例以及任何未通过的断言。这样有助于尽早发现和修复代码中的错误,提高软件质量,并且在项目...

    application分析 文件

    事务是数据库操作中的一个重要概念,它确保一系列操作要么全部成功,要么全部失败,从而保持数据的一致性。在Spring框架中,事务管理通常是通过`PlatformTransactionManager` 接口来实现的。配置事务时需要指定事务...

    Spring+Hibernate 加入JUnit Jar包

    2. **Spring配置**:创建Spring的配置文件,如applicationContext.xml,配置数据源、Hibernate SessionFactory以及你的业务层Bean。你可以使用`&lt;bean&gt;`标签定义Bean,使用`&lt;property&gt;`标签设置Bean的属性。 3. **...

    hibernate操纵实体对象

    综上所述,`hibernateOperate.java`, `DeleteTest.java`, `HibernateSessionFactory.java`以及`BatchUpdateTest.java`这四个文件涵盖了Hibernate中的核心操作和测试场景,它们一起构成了一个完整的数据库操作示例,...

    声明式事务.docx

    1. 引入Spring核心、AOP、测试等相关依赖。 2. 配置Hibernate的SessionFactory,DataSource以及事务管理器。 3. 在Service层或DAO层的方法上添加`@Transactional`注解。 4. 配置事务代理,如`&lt;tx:annotation-driven&gt;...

    SSH.rar_ssh

    - 类加载问题:可能出现类加载顺序错误,导致依赖注入失败,需合理配置类加载器。 - 拦截器顺序:Struts2的拦截器执行顺序可能影响功能,需要根据业务需求调整。 总之,SSH框架的整合涉及多个层次的配置和组件协调...

    Struts2+Spring+Hibernate登陆整合

    8. **测试**:为了确保登录功能的正确性,需要编写单元测试和集成测试,测试用户输入的合法性、数据库查询的正确性以及异常处理的有效性。 这个项目展示了如何将三个框架有效集成,实现一个常见的业务需求。理解...

    spring快速开发入门教程

    - Transaction配置则是确保数据的一致性和完整性,即当多个操作需要作为一个整体执行时,如果其中一个操作失败,则所有操作都会被回滚,以保持数据的完整性和一致性。 - **示例**:通过配置Hibernate ...

    Struts2+spring2+hibernate3实例源码-java源码

    8. 测试:运行项目,进行单元测试和集成测试,确保各个组件正常工作。 这种整合方式的优点在于,Struts2提供了良好的MVC结构,Spring负责管理和控制依赖,而Hibernate则简化了数据库操作。通过它们的协同工作,...

    hibernate,struts2,spring 整合jar包

    然而,整合过程中需要注意版本兼容性,避免因不同版本间的不兼容问题导致整合失败。 在实际开发中,SSH整合的jar包通常包含这三个框架的核心库、相应的插件以及可能的依赖库。文件名“整合”可能是指包含了这些jar...

    Spring集成SpringMVC/Mybatis

    7. **测试验证**:编写JUnit测试用例,确保各组件正常工作,然后部署应用到服务器,进行功能和性能测试。 集成Spring、SpringMVC和Mybatis能帮助开发者构建高效、灵活的后端系统。通过它们的协同工作,可以轻松地...

    SSH2简单框架的登录的应用

    8. 测试:运行应用,测试登录功能,确保输入正确的用户名和密码可以成功登录,错误信息则提示登录失败。 以上就是使用SSH2框架实现简单登录功能的概述。理解这些知识点,有助于开发者快速构建出功能完善的JavaEE...

    Struts1.3+Spring2.5+Hibernate3手动整合

    6. **测试整合**: 编写JUnit测试用例,验证Action、Service、DAO三层是否能正常工作。 **常见问题及解决方案**: 1. **空指针异常**: 可能是由于Spring没有正确注入bean,检查配置文件中的bean声明和引用。 2. **...

    ssh框架,简单代码例子

    Spring的IoC(控制反转)和DI(依赖注入)特性,使得组件之间的耦合度降低,提高了代码的可测试性和可维护性。 **3. Hibernate** Hibernate是一个持久层框架,它简化了Java对象与数据库之间的交互。通过ORM(对象...

    struts1+spring+hibernate整合项目实现登录

    6. **测试与调试**:完成以上配置后,进行单元测试和集成测试,确保登录功能正常运行,包括用户名和密码的验证、登录失败的处理等。 在项目源码中,可能包含以下文件: - `struts-config.xml`:Struts1的配置文件。...

    struts + hibernate 整合例子

    - 错误和异常处理,如表单验证失败后的错误信息显示,数据库操作时可能出现的异常处理。 5. **优化和注意事项**: - 缓存管理:Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的)...

    在飞实习学J2EE之路:12.9.23 Hibernate的基本流程(登录)

    // 登录失败 } transaction.commit(); session.close(); ``` 6. **事务管理** 数据库操作通常需要在事务中进行,以确保数据的一致性。在上面的示例中,我们启用了事务并在操作完成后提交。 7. **缓存策略** ...

    hibernate hellowrold入门级代码

    在Hibernate中,我们通常使用Transaction来包裹一组操作,确保它们要么全部成功,要么全部失败。例如,`session.beginTransaction()`开始一个事务,`transaction.commit()`提交事务,而如果发生错误,可以调用`...

    基于SSH框架对数据库的增删改查

    例如,当数据库操作失败时,可以抛出自定义异常,并在ActionSupport中重写`validate()`或`execute()`方法进行处理,或者通过AOP切面捕获并处理异常。 7. **视图层**:在Struts2中,视图通常由JSP或FreeMarker等模板...

Global site tag (gtag.js) - Google Analytics