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