0 0

Hibernate4创建SessionFactory时卡住不运行?5

使用Hibernate4写一个CRUD示例,javase程序,在main方法中创建sessionFactory,使用如下代码:

private HibernateUtils() {
    try {
        if (this.sessionFactory == null) {
            Configuration cfg = new Configuration();
            cfg.configure(new File("hibernate.cfg.xml"));
            cfg.setNamingStrategy(ImprovedNamingStrategy.INSTANCE);
            ServiceRegistry sr =new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
            this.sessionFactory = cfg.addAnnotatedClass(ApplyInfo.class)
                                    .addAnnotatedClass(Contract.class)
                                    .addAnnotatedClass(Overview.class)
                                    .addAnnotatedClass(SegmentHtml.class)
                                    .buildSessionFactory(sr);
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		}
	}


在Eclipse中普通运行就会卡住不允许,如果是debug方式运行,就没有任何问题.
卡在如下日志处

五月 13, 2014 10:34:16 上午 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
五月 13, 2014 10:34:16 上午 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.12.Final}
五月 13, 2014 10:34:16 上午 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
五月 13, 2014 10:34:16 上午 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
五月 13, 2014 10:34:16 上午 org.hibernate.cfg.Configuration configure
INFO: HHH000042: Configuring from file: hibernate.cfg.xml
五月 13, 2014 10:34:17 上午 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
五月 13, 2014 10:34:17 上午 org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator getConfiguredConnectionProviderName
WARN: HHH000208: org.hibernate.connection.C3P0ConnectionProvider has been deprecated in favor of org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider; that provider will be used instead.
五月 13, 2014 10:34:17 上午 org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator instantiateExplicitConnectionProvider
INFO: HHH000130: Instantiating explicit connection provider: org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider
五月 13, 2014 10:34:17 上午 org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider configure
INFO: HHH010002: C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/pgdata
五月 13, 2014 10:34:17 上午 org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider configure
INFO: HHH000046: Connection properties: {user=root, password=****}
五月 13, 2014 10:34:17 上午 org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider configure
org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider configure​

到这里就不在向下执行.在Debug模式就没有任何问题,创建SessionFactory和Crud都正常.

mysql数据库驱动,hibernate4小版本号够尝试换成别的版本,都没能解决问题.

请大家指教!谢谢
2014年5月13日 11:27

2个答案 按时间排序 按投票排序

0 0

hibernate4 中貌似提供的注解

Configuration configuration=new  Configuration();


而不是 Configuration cfg = new Configuration();
是不是东西搞混了啊?

2014年5月14日 01:40
0 0

刚刚在本地测试了下,
public void testConnection() throws Exception {

            logger.info("----------start------------");
            Configuration configuration = new Configuration();
            configuration.configure("hibernate_sp.cfg.xml");
            StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
            SessionFactory sessionFactory = configuration.buildSessionFactory(ssrb.build());
            Session session = sessionFactory.openSession();
            logger.info("----------end------------");
    }

2014年5月13日 11:48

相关推荐

    使用 HibernateSessionFactory 类

    `SessionFactory`是线程安全的,通常在应用启动时创建一次,然后在整个应用生命周期中复用。它通过读取`hibernate.cfg.xml`或`hibernate.properties`配置文件来初始化,这些文件定义了数据库连接参数、方言、缓存...

    HibernateSessionFactory.java

    HibernateSessionFactory.java

    HibernateSessionFactory 代码

    `SessionFactory`的创建是基于Hibernate的配置文件(通常为`hibernate.cfg.xml`)和映射文件(`.hbm.xml`)。配置文件包含了数据库连接信息,而映射文件定义了Java对象与数据库表之间的映射关系。 创建`...

    spring配置sessionFactory(spring3.2.3+hibernate4.2.2)

    SessionFactory是Hibernate的核心组件,它负责创建Session对象,而Session则是与数据库交互的接口。 首先,我们需要在项目中添加Spring和Hibernate的依赖。Spring的jar包通常包括spring-context、spring-beans、...

    新Hibernate SessionFactory().getCurrentSession()猫腻

    在传统的Hibernate使用模式中,开发者通常会在每个事务开始时创建一个新的Session,并在事务结束时关闭它。然而,`SessionFactory.getCurrentSession()`方法提供了一种不同的方式来获取Session,这种方式旨在支持...

    HibernateSessionFactory.java Hibernate使用的整合的工具文件

    Session s= HibernateSessionFactory.getSession(); 就是Hibernate的工具java类

    hibernate中创建表

    4. **创建SessionFactory**:使用配置文件创建SessionFactory实例,它是Hibernate的核心,用于生成Session对象。 ```java Configuration config = new Configuration().configure(); SessionFactory sessionFactory ...

    HibernateSessionFactory

    用于获得Session会话及关闭Session会话

    springboot集成hibernate

    在本文中,我们将深入探讨如何将Spring Boot框架与Hibernate ORM集成,特别是在不使用JPA(Java Persistence API)的情况下。Spring Boot以其便捷的自动配置和简化Java应用开发而广受欢迎,而Hibernate作为Java领域...

    Hibernate自动创建表结构示例--Oracle

    最后,初始化Hibernate SessionFactory,通过SessionFactory创建Session,然后在Session中执行操作。当Session启动时,Hibernate会根据`hibernate.hbm2ddl.auto`的设置自动处理表结构。 在给定的压缩包文件...

    hibernate4全套jar

    这个"hibernate4全套jar"压缩包包含了Hibernate 4框架运行所需的全部JAR文件,为Java开发人员提供了一个完整的Hibernate环境。 1. **Hibernate概述**: Hibernate 是一个开源的对象关系映射(ORM)框架,它允许...

    Hibernate4 必备包

    总结来说,"Hibernate4 必备包"包含了运行和开发基于Hibernate4的应用程序所需的基本组件。这些组件涵盖了ORM核心、数据查询、事务管理、关联映射等多个方面,为开发者提供了强大且灵活的数据库操作工具。通过合理...

    Hibernate 4jar包

    标题中的“Hibernate 4jar包”指的是包含所有所需组件的Java档案库,这些组件是运行和开发使用Hibernate 4的Java应用所必需的。这个包通常包括以下部分: 1. **hibernate-core.jar**:这是Hibernate的核心库,包含...

    在Eclipse上创建Hibernate实例

    使用MyEclipse创建hibernate实例入门教程

    spring-orm-hibernate4源码

    实体类通过注解或XML文件定义映射规则,Spring通过`EntityScanner`扫描这些映射,确保它们在运行时被正确加载。 7. **懒加载和级联操作**: Hibernate支持对象关系的懒加载,通过`lazy="true"`可以延迟加载关联数据...

Global site tag (gtag.js) - Google Analytics