使用JDBC连接Oracle数据库提示网络适配器无法建立连接如何解决
连接报错排查解决指南
核心根因定位
你当前代码中的JDBC连接URL配置错误是最直接的报错原因:你填写的是连接本地Oracle默认XE实例的地址,而实际需要连接的是学校的远程Oracle实例,报错堆栈也明确标注了尝试连接的是本地localhost:1521端口,本地没有运行对应Oracle服务所以直接抛出连接拒绝异常。
分步解决步骤
- 修正JDBC连接URL
将代码中原来的连接字符串替换为匹配学校数据库参数的格式:
原错误URL:jdbc:oracle:thin:@localhost:1521:xe
修正后URL:jdbc:oracle:thin:@155.158.xxx.xx:1521:olt*****
注意将占位的xxx和星号替换为实际的主机地址、完整SID值。 - 提前验证网络连通性
跑代码前先在本地终端/命令提示符执行telnet命令验证端口可达性:telnet 155.158.xxx.xx 1521
如果telnet连接失败,优先确认你是否已连接学校内网/专属VPN,或联系学校管理员确认你的IP是否在数据库访问白名单内。 - 检查JDBC驱动兼容性
确认项目导入的ojdbc驱动版本与学校Oracle数据库的大版本匹配:Oracle 11g对应ojdbc6,Oracle 19c及以上对应ojdbc8,版本不兼容也会触发连接异常。 - 校验账号权限
上述步骤都验证通过后,确认用户名、密码没有大小写拼写错误,同时确认该账号被分配了远程连接数据库的权限。
修正后参考代码
package net.codejava; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JavaOracleTest { public static void main(String[] args) { // 替换为实际的主机地址、SID String dbURL = "jdbc:oracle:thin:@155.158.xxx.xx:1521:olt*****"; 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(); } } }
内容的提问来源于stack exchange,提问作者Kendzialo
相关产品推荐
相关产品推荐

