Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法运行基本的hibernate 5程序_Java_Hibernate - Fatal编程技术网

Java 无法运行基本的hibernate 5程序

Java 无法运行基本的hibernate 5程序,java,hibernate,Java,Hibernate,我正在尝试运行hibernate教程()中给出的程序。但我遇到了错误。令人惊讶的是,控制台中显示的错误日志很少。如果有人能告诉我哪里出了问题,我将不胜感激。我已经花了很多时间试图解决它之前,张贴在这里。 下面是我的代码 hibernate.cfg.xml <hibernate-configuration> <session-factory> <!-- Database connection settings --> &l

我正在尝试运行hibernate教程()中给出的程序。但我遇到了错误。令人惊讶的是,控制台中显示的错误日志很少。如果有人能告诉我哪里出了问题,我将不胜感激。我已经花了很多时间试图解决它之前,张贴在这里。 下面是我的代码

hibernate.cfg.xml

<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
        <property name="connection.username">hr</property>
        <property name="connection.password">hr</property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property> 
        <mapping resource="org/hibernate/tutorial/hbm/Event.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:xe;DB_CLOSE_DELAY=-1;MVCC=真
人力资源
人力资源
1.
org.hibernate.dialen.oracle10galent
org.hibernate.cache.internal.NoCacheProvider
真的
创造
Event.hbm.xml

<hibernate-mapping package="org.hibernate.tutorial.hbm">
    <class name="Event" table="EVENTS">
        <id name="id" column="EVENT_ID">
            <generator class="increment"/>
        </id>
        <property name="date" type="timestamp" column="EVENT_DATE"/>
        <property name="title"/>
    </class>
</hibernate-mapping>

测试类别:NativeApillustrationTest

package org.hibernate.tutorial.hbm;

import java.util.Date;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import junit.framework.TestCase;

public class NativeApiIllustrationTest extends TestCase {
    private SessionFactory sessionFactory;

    @Override
    protected void setUp() throws Exception {
        // A SessionFactory is set up once for an application!
        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                .configure() // configures settings from hibernate.cfg.xml
                .build();
        try {
            sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
        }
        catch (Exception e) {
            // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
            // so destroy it manually.
            StandardServiceRegistryBuilder.destroy( registry );
        }
    }

    @Override
    protected void tearDown() throws Exception {
        if ( sessionFactory != null ) {
            sessionFactory.close();
        }
    }

    @SuppressWarnings("unchecked")
    public void testBasicUsage() {
        // create a couple of events...
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        session.save( new Event( "Our very first event!", new Date() ) );
        session.save( new Event( "A follow up event", new Date() ) );
        session.getTransaction().commit();
        session.close();

        // now lets pull events from the database and list them
        session = sessionFactory.openSession();
        session.beginTransaction();
        List result = session.createQuery( "from Event" ).list();
        for ( Event event : (List<Event>) result ) {
            System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() );
        }
        session.getTransaction().commit();
        session.close();
    }
}
package org.hibernate.tutorial.hbm;
导入java.util.Date;
导入java.util.List;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.hibernate.boot.MetadataSources;
导入org.hibernate.boot.registry.StandardServiceRegistry;
导入org.hibernate.boot.registry.StandardServiceRegistryBuilder;
导入junit.framework.TestCase;
公共类NativeApillustrationTest扩展了TestCase{
私人会话工厂会话工厂;
@凌驾
受保护的void setUp()引发异常{
//为应用程序设置一次SessionFactory!
最终StandardServiceRegistry注册表=新的StandardServiceRegistryBuilder()
.configure()//从hibernate.cfg.xml配置设置
.build();
试一试{
sessionFactory=新的元数据源(注册表).buildMetadata().buildSessionFactory();
}
捕获(例外e){
//注册表将被SessionFactory销毁,但我们在构建SessionFactory时遇到了问题
//所以手动销毁它。
StandardServiceRegistryBuilder.destroy(注册表);
}
}
@凌驾
受保护的void tearDown()引发异常{
if(sessionFactory!=null){
sessionFactory.close();
}
}
@抑制警告(“未选中”)
public void testBasicUsage(){
//创建几个事件。。。
Session Session=sessionFactory.openSession();
session.beginTransaction();
save(新事件(“我们的第一个事件!”,new Date());
保存(新事件(“后续事件”,新日期());
session.getTransaction().commit();
session.close();
//现在让我们从数据库中提取事件并列出它们
session=sessionFactory.openSession();
session.beginTransaction();
列表结果=session.createQuery(“来自事件”).List();
对于(事件:(列表)结果){
System.out.println(“事件(“+Event.getDate()+”):+Event.getTitle());
}
session.getTransaction().commit();
session.close();
}
}
登录控制台:

Jun 13, 2017 6:54:51 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.10.Final}
Jun 13, 2017 6:54:51 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jun 13, 2017 6:54:51 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
Jun 13, 2017 6:54:52 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Jun 13, 2017 6:54:52 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [oracle.jdbc.driver.OracleDriver] at URL [jdbc:oracle:thin:@localhost:1521:xe;DB_CLOSE_DELAY=-1;MVCC=TRUE]
Jun 13, 2017 6:54:52 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=fod, password=****}
Jun 13, 2017 6:54:52 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Jun 13, 2017 6:54:52 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 1 (min=1)
Jun 13, 2017 6:54:52 AM org.hibernate.service.internal.AbstractServiceRegistryImpl stopService
INFO: HHH000369: Error stopping service [class org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl] : java.lang.NullPointerException 
2017年6月13日上午6:54:51 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{5.2.10.Final}
2017年6月13日上午6:54:51 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2017年6月13日上午6:54:51 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{5.0.1.Final}
2017年6月13日上午6:54:52 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
警告:HHH10001002:使用Hibernate内置连接池(不用于生产!)
2017年6月13日上午6:54:52 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
信息:HHH10001005:在URL[jdbc:oracle:thin:@localhost:1521:xe;DB\u CLOSE\u DELAY=-1;MVCC=TRUE]处使用驱动程序[oracle.jdbc.driver.OracleDriver]
2017年6月13日上午6:54:52 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
信息:HHH10001001:连接属性:{user=fod,password=**}
2017年6月13日上午6:54:52 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
信息:HHH10001003:自动提交模式:错误
2017年6月13日上午6:54:52 org.hibernate.engine.jdbc.connections.internal.PooledConnections
信息:HH000115:休眠连接池大小:1(最小值=1)
2017年6月13日上午6:54:52 org.hibernate.service.internal.AbstractServiceRegistryImpl stopService
信息:HH000369:停止服务时出错[class org.hibernate.engine.jdbc.connections.internal.driverManager连接ProviderImpl]:java.lang.NullPointerException
空指针出现在第行:Session Session=sessionFactory.openSession();它表示sessionFactory为null

下面是我在类路径中添加的jar
I

我对hibernate.cfg.xml进行了一些更改,它开始工作。修改后的xml如下所示:

<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
        <property name="connection.username">hr</property>
        <property name="connection.password">hr</property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>     
        <mapping resource="org/hibernate/tutorial/hbm/Event.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:XE
人力资源
人力资源
1.
org.hibernate.dialen.oracle10galent
org.hibernate.cache.internal.NoCacheProvider
真的
创造
我在此xml中所做的更改是修改连接url:

<property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
jdbc:oracle:thin:@localhost:1521:XE
问题的答案可能会有所帮助;但是我建议您学习新的方法,因为这种配置应用程序的方法已经过时了