如何使用 JDBC 连接到 Oracle 数据库 [重复]

     2023-04-14     304

关键词:

【中文标题】如何使用 JDBC 连接到 Oracle 数据库 [重复]【英文标题】:How to connect to Oracle Database with JDBC [duplicate] 【发布时间】:2021-11-11 06:34:33 【问题描述】:

我正在使用 Eclipse 连接到远程数据库,详细信息如下:

名称:MSbdd** 主机名 155.158.xxx.xx 端口:1521 SID:olt*****

认证类型:默认

用户名:msbd** 密码:haslo****

这是我在 Eclipse 中的代码:

package net.codejava;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JavaOracleTest 

    public static void main(String[] args) 
        String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";
        String username = "msbd**";
        String password = "haslo****";
        
        try 
            Connection connection = DriverManager.getConnection(dbURL, username, password);
            System.out.println("Połączono z serwerem Oracle");
         catch (SQLException e) 
            System.out.println("Error");
            e.printStackTrace();
        

    


这是我得到的错误:

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection (CONNECTION_ID=yV+3U5v4TK2js7gMFTixxA==)
Error
    at oracle.jdbc.driver.T4CConnection.handleLogonNetException(T4CConnection.java:882)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:687)
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1086)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:90)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:728)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:649)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at net.codejava.JavaOracleTest.main(JavaOracleTest.java:15)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection (CONNECTION_ID=yV+3U5v4TK2js7gMFTixxA==)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:677)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:568)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:953)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:350)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:2155)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:652)
    ... 7 more
Caused by: java.io.IOException: Connection refused: connect, socket connect lapse 2003 ms. localhost 1521  0 (2/2) true
    at oracle.net.nt.TcpNTAdapter.establishSocket(TcpNTAdapter.java:421)
    at oracle.net.nt.TcpNTAdapter.doLocalDNSLookupConnect(TcpNTAdapter.java:303)
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:265)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:238)
    at oracle.net.nt.ConnStrategy.executeConnOption(ConnStrategy.java:902)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:638)
    ... 12 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:482)
    at java.base/sun.nio.ch.Net.connect(Net.java:474)
    at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:694)
    at java.base/java.nio.channels.SocketChannel.open(SocketChannel.java:194)
    at oracle.net.nt.TimeoutSocketChannel.connect(TimeoutSocketChannel.java:184)
    at oracle.net.nt.TimeoutSocketChannel.<init>(TimeoutSocketChannel.java:158)
    at oracle.net.nt.TcpNTAdapter.establishSocket(TcpNTAdapter.java:380)
    ... 17 more

我用 * 替换了一些细节,因为它是学校的数据库。

【问题讨论】:

在您的问题中,您声明主机名是155.158.xxx.xx,但在您的网址中您使用localhost,这显然不会起作用。将localhost 替换为155.158.xxx.xx 【参考方案1】:

你的错误是:

Caused by: java.net.ConnectException: Connection refused: connect

检查您是否有:

正确的主机名。

例如,您说主机名是155.158.xxx.xx,但您正在使用:

String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";

应该是:

String dbURL = "jdbc:oracle:thin:@155.158.xxx.xx:1521:xe";

正确的端口。

正确的 SID。

例如,应该是:

String dbURL = "jdbc:oracle:thin:@155.158.xxx.xx:1521:olt*****";

正确的用户名和密码。

访问数据库。

即您在可以访问服务器的网络上运行它,而不是从无法访问服务器的网络上运行它(您的学校可能要求您直接连接到或登录到他们的网络才能访问服务器,并且可能会拒绝来自未经身份验证的用户的连接在他们的网络之外)。

【讨论】:

如何使用带有 TNSNames 别名语法的 JDBC 瘦驱动程序连接到 Oracle 数据库

...如何使用带有TNSNames别名语法的JDBC瘦驱动程序连接到Oracle数据库【英文标题】:HowtoconnecttotheOracledatabaseusingJDBCthindriverwithTNSNamesAliasSyntax【发布时间】:2013-01-0905:30:46【问题描述】:我正在尝试使用OracleJDBC瘦驱动程序(11.2.0.2.0的... 查看详情

如何使用 jdbc 连接到 oracle

】如何使用jdbc连接到oracle【英文标题】:Howtoconnecttooracleusingjdbc【发布时间】:2021-05-1618:58:11【问题描述】:我正在尝试使用jdbc从jsp连接到Oracle。但是class.forName(...)抛出异常完整代码在这里:%@pagelanguage="java"contentType="text/html;cha... 查看详情

如何使用 JRuby 和 JDBC 连接到 Oracle

】如何使用JRuby和JDBC连接到Oracle【英文标题】:HowtoconnecttoOracleusingJRuby&JDBC【发布时间】:2009-04-1608:22:24【问题描述】:第一种方法:裸机require\'java\'require\'rubygems\'require"c:/ruby/jruby-1.2.0/lib/ojdbc14.jar"#shouldberedundant,buttrieditany 查看详情

无法使用 JDBC 连接到远程 oracle 数据库

】无法使用JDBC连接到远程oracle数据库【英文标题】:can\'tconnecttoremoteoracledatabasewithJDBC【发布时间】:2016-12-0723:27:59【问题描述】:我似乎能够使用运行SQL命令行连接到(remote)oracle数据库,但不能使用JDBC。因此,假设服务器名称... 查看详情

如何使用 JDBC 连接到 SQL Server 2008 数据库?

】如何使用JDBC连接到SQLServer2008数据库?【英文标题】:HowdoIconnecttoaSQLServer2008databaseusingJDBC?【发布时间】:2011-01-2722:57:37【问题描述】:我在本地PC上安装了MSSQL2008,我的Java应用程序需要连接到MSSQL数据库。我是MSSQL的新手,我... 查看详情

无法使用 19.3 JDBC 驱动程序连接到 Oracle 19.3

...:2019-10-1009:02:29【问题描述】:我们有一个使用Oracle19.3数据库运行的项目,以及一个使用Oracle19.3JDBC驱动程序(可在MavenCentral上获得)的Java应用程序。在带有JRE1.8的Windows上,一切都很好,但是当我 查看详情

使用 JDBC-ODBC 桥连接到 SQLServer

...写一个应用程序,原型是在MySQL上,现在正在连接到Oracle数据库。要连接到oracle数据库(已建立表结构),我所要做的就是更改连接字符串。连接到另一台机器上的SQLServerDB的格式是什么?我已经阅读了一些教程 查看详情

如何使用jdbc连接到sqlserver(代码片段)

我正在使用MicrosoftSQLServer2008并尝试使用JDBC连接到数据库。以下是我的代码。用户名和密码使用Windows身份验证。Stringurl1="jdbc:sqlserver://ServerName;databaseName=v14testvp;user=USERNAME;password='';";Class.forName("com.microsoft.sqlserver 查看详情

如何使用 IntelliJ 和 JDBC 建立 SSH 隧道并连接到数据库?

】如何使用IntelliJ和JDBC建立SSH隧道并连接到数据库?【英文标题】:HowtoSSHtunnelandconnecttoadatabaseusingIntelliJandJDBC?【发布时间】:2016-05-2202:16:23【问题描述】:我在使用IntelliJ和JDBC连接到托管在服务器上的数据库时遇到问题。用命... 查看详情

如何使用 jdbc 和 tomcat 连接到 MySQL 数据库 [重复]

】如何使用jdbc和tomcat连接到MySQL数据库[重复]【英文标题】:HowtoconnecttoMySQLdatabaseusingjdbcandtomcat[duplicate]【发布时间】:2014-07-1102:51:25【问题描述】:我正在为班级开发一个动态网络项目。我正在尝试从MYSQL数据库中提取数据,以... 查看详情

无法使用glassfish3上的jdbc连接到数据库

...eans7.2.1,使用JSF2,Glassfish3.1.2和Oracle11g。我想连接到这个数据库。首先,我需要在Glassfish中创建连接池。我打开localhost:4848设置5件事:资源类型:javax.sql.DataSource数据源的类名:oracle.jdbc.pool.OracleDa 查看详情

如何使用 jdbc 代码手动连接到 mysql?

...。我创建了一个使用mysql作为后端的javaweb应用程序。mysql数据库安装在与Web服务器不同的服务器上。在mysql中,我为我的Web应 查看详情

如何使用python连接到redshift jdbc url?

...间】:2019-09-0917:02:49【问题描述】:我有一个如下所示的数据库URL:jdbc:redshift://<database_name>.company.com:5439/<database_name>?ssl=true&sslf 查看详情

使用不同的 jdbc 驱动程序连接到多个数据库

】使用不同的jdbc驱动程序连接到多个数据库【英文标题】:connectingtomultipledatabasesusingdifferentjdbcdrivers【发布时间】:2011-06-1816:28:01【问题描述】:我需要编写一个基于守护进程的Java进程(不是基于Web),它将连接到Oracle10G数据... 查看详情

如何从 Jython 连接到数据库

】如何从Jython连接到数据库【英文标题】:HowtoconnecttodatabasefromJython【发布时间】:2009-01-2211:32:24【问题描述】:我无法从我的Jython程序连接到数据库。纯Java程序可以连接,我可以从Jython连接到db,但只能使用JDBC-ODBC桥:“sun.jdb... 查看详情

使用 JDBC 连接到 PostgreSQL 数据库时选择角色

【中文标题】使用JDBC连接到PostgreSQL数据库时选择角色【英文标题】:SelectarolewhenconnectingtoaPostgreSQLdatabasewithJDBC【发布时间】:2017-12-1723:26:22【问题描述】:使用JDBC连接PostgreSQL数据库时如何选择角色?【问题讨论】:【参考方... 查看详情

如何使用 node-oracledb 连接到 LDAP 服务器?

...db?【发布时间】:2015-11-0618:30:19【问题描述】:我有一个数据库,我可以使用字符串“jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world”连接到使用jdbc。但是 查看详情

使用 sqldeveloper 连接到 Oracle 数据库

】使用sqldeveloper连接到Oracle数据库【英文标题】:ConnecttoanOracleDBwithsqldeveloper【发布时间】:2017-04-0614:33:34【问题描述】:我的后端系统正在通过数据源连接到远程Oracle数据库:dataSource_esbdialect=org.hibernate.dialect.Oracle10gDialectdriverC... 查看详情