JDBC初步与IO异常: The Network Adapter could not establish the connection

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011674213/article/details/79612301

JDBC初步
引入classes12.jar

import java.sql.*;

public class TestJDBC {
//此程序需要做异常处理,这里没有做
	public static void main(String[] args) throws Exception {
		//相当于new一个OracleDriver实例
		//自动向DriverManager注册
		Class.forName("oracle.jdbc.driver.OracleDriver"); 
		//new oracle.jdbc.driver.OracleDriver();
		//拿到数据库的连接
		Connection conn = DriverManager.getConnection(
				//"jdbc:oracle:thin:@PC1:1521:orcl",//数据库的连接字符串
				"jdbc:oracle:thin:@127.0.0.1:1521:orcl",
				//"jdbc:oracle:thin:@localhost:1521:orcl",
				//"jdbc:oracle:thin:@192.168.1.152:1521:orcl",
				"scott",   //用户名
				"tiger");   //密码
		//通过连接创建语句对象
		Statement stmt = conn.createStatement();
		//返回一个结果集,这个结果集像游标,但指在第一条记录的上边
		ResultSet rs = stmt.executeQuery("select * from dept");
		while(rs.next()){
			//把这给字段当前记录里边的内容当成字符串拿出来
			System.out.println(rs.getString("deptno"));
			//把这给字段当前记录里边的内容当成int拿出来
			System.out.println(rs.getInt("deptno"));
		}
		rs.close();
		stmt.close();
		conn.close();

	}

}

IO异常: The Network Adapter could not establish the connection
解决步骤:
1、一般此类异常是连接的url配置有误,确认是否有误?
我的配置:jdbc:oracle:thin:@localhost:1521:orcl

2、检查oracle监听服务是否启动(在windows服务或DOS下都可查看)

3、确认监听终端IP及端口是否正确(DOS下查看)
C:\Documents and Settings\Administrator>cd \

C:>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 06-11月-2010 10:3
1:26

Copyright © 1991, 2005, Oracle. All rights reserved.

欢迎来到LSNRCTL, 请键入"help"以获得信息。

LSNRCTL> status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS


别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 06-11月-2010 10:10:18
正常运行时间 0 天 0 小时 21 分 15 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener.log

监听端点概要…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.2)(PORT=1521)))
服务摘要…
服务 “PL***tProc” 包含 1 个例程。
例程 “PL***tProc”, 状态 UNKNOWN, 包含此服务的 1 个处理程序…
服务 “orcl” 包含 1 个例程。
例程 “orcl”, 状态 READY, 包含此服务的 1 个处理程序…
服务 “orclXDB” 包含 1 个例程。
例程 “orcl”, 状态 READY, 包含此服务的 1 个处理程序…
服务 “orcl_XPT” 包含 1 个例程。
例程 “orcl”, 状态 READY, 包含此服务的 1 个处理程序…
命令执行成功

— 一切正常,可仔细查看,却发现IP为:192.168.0.2,而jdbc连接url为localhost,一般windows操作系统都是将localhost域名解析为127.0.0.1,而本次安装的oracle监听的却是本机的IP? 为什么会如此? 我还没有细查。
不过问题已经找到,将url更改为:jdbc:oracle:thin:@192.168.0.2:1521:orcl

OK,测试,一切正常!

oracle ORA-12545:因目标主机或对象不存在
https://jingyan.baidu.com/article/cb5d6105e4649e005c2fe029.html

参考:
http://blog.chinaunix.net/uid-27689513-id-3443357.html
https://jingyan.baidu.com/article/cb5d6105e4649e005c2fe029.html

猜你喜欢

转载自blog.csdn.net/u011674213/article/details/79612301