2011-10-16 38 views
2

我做了一个基本的JUnit测试,在休眠状态下在我的电脑上设置这个Oracle数据库。数据库的工作原理和一切,但试图挂钩到Hibernate被证明是一个挑战。我的配置文件可以hereHibernate无法打开与Oracle 11g的连接?

JUnit测试是相当简单的,我相信它应该工作,但我得到这个JUnit的失败:

org.hibernate.exception.JDBCConnectionException: Cannot open connection 

任何想法是什么它错了吗?在Hibernate的配置文件

连接属性:

<session-factory> 
    <property name="hibernate.connection.driver_class"> 
     oracle.jdbc.OracleDriver</property> 
    <property name="hibernate.connection.url"> 
     jdbc:Oracle:thin:@127.0.0.1:8080/slyvronline</property> 
    <property name="hibernate.connection.username"> 
     YouNoGetMyLoginInfo</property> 
    <property name="hibernate.connection.password"> 
     YouNoGetMyLoginInfo</property> 
    <property name="dialect"> 
     org.hibernate.dialect.OracleDialect</property> 
    <!-- Other --> 
    <property name="show_sql">true</property> 
    <property name="hibernate.hbm2ddl.auto">validate</property> 

    <!-- Mapping files --> 
    <mapping class="com.slyvr.pojo.Person"/> 
</session-factory> 

回答

7

这是不太可能(但是可能),你的数据库是在8080端口上的Oracle默认监听端口1521开始出现。

(因为它是一个连接问题,Hibernate的配置器的主要部分是有用的。我编辑,以反映)

+0

啊,你是对。该URL似乎与:jdbc:oracle:thin:@localhost:1521:xe一起工作。除了我得到一个错误说缺少序列或表:hibernate_sequence – slyvr

+1

@slyvr这是一个映射问题;应该在一个新的问题下。 –

2

有你的连接字符串中可能的两个问题

首先是港口戴夫牛顿,第二,端口后,你应该添加sid:not /。

因此,尝试这是一个解决方案:

jdbc:Oracle:thin:@127.0.0.1:1521:slyvronline 
1

当您与Oracle连接,没有必要提及的架构名称,以便在连接的URL看起来像如下

jdbc:oracle:thin:@<hostname>:<port>:<sid> 
    ex: 
    jdbc:oracle:thin:@localhost:1521:xe