Java 在hibernate中配置时拒绝jdbc连接
我使用Oracle12c和JarOJDBC7在hibernate中配置DB。但我得到了以下错误: org.hibernate.exception.JDBCConnectionException:调用驱动程序#connect时出错 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122) 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140) 位于org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58) 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl.configure(DriverManager连接ProviderImpl.java:106) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178) 位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.buildJdbcConnectionAccess(jdbcservicesiml.java:260) 位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:94) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178) 位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928) 位于com.vikas.hibernate.HibernateTest.main(HibernateTest.java:21) 原因:java.sql.SQLException:侦听器拒绝连接,出现以下错误: ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SIDJava 在hibernate中配置时拒绝jdbc连接,java,sql,oracle,hibernate,jdbc,Java,Sql,Oracle,Hibernate,Jdbc,我使用Oracle12c和JarOJDBC7在hibernate中配置DB。但我得到了以下错误: org.hibernate.exception.JDBCConnectionException:调用驱动程序#connect时出错 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122) 位于org.hibernate.en
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 14 more
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:272)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:263)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 19 more
我的hibernate.cfg.xml如下所示:
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:localhost:1522/DevDb
系统
神谕123
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.OracleDialect</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>
1.
org.hibernate.dialen.oraclealent
org.hibernate.cache.internal.NoCacheProvider
真的
创造
有人能帮我解决这个问题吗
上面说 ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 14 more
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:272)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:263)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 19 more
我给出的SID是正确的。您的jdbc连接字符串几乎正确
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:localhost:1522/DevDb
这是正确的
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@//localhost:1522/DevDb
另外,在尝试ORM方式之前,请确保尝试使用sqlplus登录 您的设置是正确的,与persistence.xml->older(hibernate.cfg.xml)中的settins无关 虽然在服务器Logg中没有这个例外,但在APP Logg中,我在一个应用程序中看到了很短的一段时间。我对此进行了分析,并且我的逻辑处理正确,这意味着这是一个oracleXE bug、应用服务器bug或ORM提供者bug(hibernate)!这是肯定的,这个应用程序从几个月前就开始运行了,但是这个验证在知道之前从未发生过,关键是nobdy调用了一个客户端调用!我重启了服务器,一切似乎都正常
如果网络连接中断很短时间,服务器和数据库之间的数据对象无法进行序列化,可能会发生这种情况,我不知道,这可能会发生,因为例如JBoss正在缓存数据 您可以使用其他工具连接到数据库吗,例如SQL*Plus?嗨,Bjarte。。。这有助于。。。但是现在我又遇到了一个问题:java.sql.SQLRecoverableException:IO错误:网络适配器无法建立连接您可以使用sqlplus连接吗?你确定是1522年吗?C:\>tnsping devdbt的输出是多少。。它正在工作。。。你是对的。。服务器必须启动。。从字符串jdbc:oracle:thin:@//localhost:1522/DevDb/“中必须删除,以便现在可以正常工作……:)