JDBC连接Oracle11gR2的问题...急

bmk 2012-12-07 05:48:52
我在家看马士兵老师的视频自学JDBC,看的过程中有几个问题请教,是关于JDBC连接数据库的问题。

1 我的JDK是1.6版本的
2 lomboz eclipse3.3的
3 Oracle 是11gR2

问题:
1 在马士兵老师的视频中,他用的数据库是oracle9i的,jdk是1.5的,他在添加驱动的时候是在oracle\ora90\jdbc\lib这个目录下添加的classes12.jar, 可是我在我11g的D:\Database\Oracle\product\11.2.0\dbhome_1\jdbc\lib目录下没有找到classes12.jar这个包,只有ojdbc5.jar,ojdbc6.jar这些包,是不是oracle版本升级了,用ojdbc6.jar和classes12.jar是一样的?

2 我在D:\Database\Oracle\product\11.2.0\dbhome_1\oui\jlib这个目录下找到了classes12.jar这个包,那么这个包和马老师的9i的oracle\ora90\jdbc\lib这个目录下classes12.jar是不是一样的啊?

3我把ojdbc6.jar这个包添加了进去,但是报错
错误如下:
Exception in thread "main" java.sql.SQLException: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at TestJDBC.main(TestJDBC.java:7)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
... 7 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)
at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)
... 12 more
我写的代码如下:
import java.sql.*;

public class TestJDBC {

public static void main(String[] args) throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.100:1521:Monkey", "scott", "tiger");
}

}

4 我把ojdbc6.jar移除了之后又在程序中添加了classes12.jar这个包,但还是报错
代码还是上面的代码
错误如下图:
Exception in thread "main" java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:345)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:428)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:515)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:345)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at TestJDBC.main(TestJDBC.java:7)



5 我是用无线路由联网的,我在写数据库连接串中本地IP时,写的是在cmd中ipconfig里的ipv4的地址,应该没有错吧?
希望有人帮我解答这些问题,谢谢!!
...全文
229 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bmk 2012-12-07
  • 打赏
  • 举报
回复
已经找到了答案了,谢谢。 答案参看: http://bbs.csdn.net/topics/390308762
bmk 2012-12-07
  • 打赏
  • 举报
回复
引用 1 楼 Looking_Glass 的回复:
个人认为:你先用telnet 192.168.1.100 1521无提示不能打开端口。证明oracle不是在1521端口上监听。你先查看服务上的oralce相关服务是否启动成功(如不知道那些服务就全部启动),还不行就打开oracle的配置与移植工具中net manager的监听程序查看地址二的监听端口。如不是1521,把URL中的端口改成其端口。

谢谢你,我所有的服务全部都打开过了,而且端口也确实是1521,用telnet 192.168.1.100 1521我也试了,结果是
亲努力啊 2012-12-07
  • 打赏
  • 举报
回复
oracle服务有没有启动
Looking_Glass 2012-12-07
  • 打赏
  • 举报
回复
个人认为:你先用telnet 192.168.1.100 1521无提示不能打开端口。证明oracle不是在1521端口上监听。你先查看服务上的oralce相关服务是否启动成功(如不知道那些服务就全部启动),还不行就打开oracle的配置与移植工具中net manager的监听程序查看地址二的监听端口。如不是1521,把URL中的端口改成其端口。
目录 推荐序 前言 第1章 认识Oracle RAC 1.1 RAC产生的背景 1.2 RAC体系结构 1.2.1整体结构 1.2.2物理层次结构 1.2.3逻辑层次结构 1.3 RAC的特点 1.3.1双机并行 1.3.2高可用性 1.3.3易伸缩性 1.3.4低成本 1.3.5高吞吐量 1.4 RAC存在的问题 1.4.1稳定性 1.4.2高性能 1.5 RAC软件 1.5.1存储管理软件 1.5.2集群管理软件 1.5.3数据库管理软件 1.6本章小结 第2章 搭建类似生产环境的RAC 2.1搭建环境 2.1.1 RAC的物理结构 2.1.硬件环境 2.1.3软件环境 2.2搭建存储服务器 2.2.1安装Openfiler操作系统 2.2.2Openfiler主界面 2.2.3配置iSCSI磁盘 2.3搭建数据库服务器 2.3.1为服务器配置4个网卡 2.3.2安装Linux操作系统 2.3.3挂载iSCSI磁盘 2.3.4配置udev固定iSCSI磁盘设备名称 2.3.5配置服务器的图形化环境 2.4 RAC运行环境安装前检查 2.4.1服务器检查 2.4.2存储检查 2.4.3网络检查 2.5配置数据库服务器 2.5.1安装软件包 2.5.2修改系统参数 2.5.3配置域名解析服务 2.5.4配置hosts文件 2.5.5创建组、用户和目录 2.5.6设置环境变量 2.5.7配置SSH用户等效性 2.5.8配置时间同步服务 2.5.9安装cvuqdisk包 2.5.10 CVU验证安装环境 2.6创建ASM磁盘 2.6.1安装ASMLib驱动 2.6.2创建ASMLib磁盘 2.7部署RAC 2.7.1安装Grid Infrastructure 2.7.2安装Database DBMS 2.7.3创建ASM磁盘组 2.7.4创建RAC数据库 2.8测试RAC 2.8.1连接方式测试 2.8.2异常情况测试 2.9虚拟机搭建RAC 2.9.1虚拟机Xen简介 2.9.2启动主机Xen内核 2.9.3 Xen虚拟机创建网络环境 2.9.4创建Xen存储服务器 2.9.5创建Xen数据库服务器 2.10本章小结 第3章 Clusterware集群软件 3.1 Grid Infrastructure架构 3.1.1 GI的特点 3.1.2 GI的应用 3.1.3 Clusterware的特点 3.1.4 Clusterware增强的特性 3.2 Clusterware磁盘文件 3.2.1表决磁盘 3.2.2集群注册表 3.2.3本地注册表 3.3 Clusterware启动流程 3.3.1启动流程 3.3.2后台进程 3.4 Clusterware隔离机制 3.4.1 Clusterware心跳 3.4.2 Clusterware隔离特性IPMI 3.4.3 RAC隔离体系 3.5网格即插即用 3.5.1 GPnP结构 3.5.2 GPnP profile文件 3.5.3 mDNS服务 3.6日志体系 3.6.1 ADR的特点 3.6.2 ADR目录结构 3.6.3命令行工具ADRCI 3.6.4 Clusterware日志文件 3.6.5 ASM实例和监听日志文件 3.6.6 Database日志文件 3.7本章小结 第4章 ASM存储软件 4.1 ASM简介 4.1.1 ASM的特点 4.1.2 ASM实例的功能 4.2 ASM磁盘组 4.2.1 ASM磁盘 4.2.2共享ASM磁盘组 4.2.3 ASM逻辑结构 4.2.4 ASM故障组 4.2.5 ASM条带化 4.3 ASM文件 4.3.1 ASM文件类型 4.3.2 ASM别名 4.3.3 ASM文件模板 4.4 ASM数据结构 4.4.1物理元数据 4.4.2虚拟元数据 4.5 ASM操作 4.5.1 RDBMS操作ASM文件 4.5.2 ASM文件的分配 4.5.3 ASM区间读写特性 4.5.4 ASM同步技术 4.5.5 ASM实例恢复和Crash恢复 4.5.6 ASM磁盘组操作 4.6 ACFS集群文件系统 4.6.1 ACFS概述 4.6.2 ADVM动态卷管理 4.6.3 ACFS快照 4.6.4 ACFS的备份和恢复 4.6.5 ACFS同ASM整合 4.7本章小结 第5章 RAC工作原理 5.1单实例并发与一致性 5.1.1数据读一致性与写一致性 5.1.2多版本数据块 5.1.3
Oracle官方11g 最新版jdbc驱动。 新特性:   1、支持JDK6,支持JDBC 4.0,新的java.sql.SQLXML类型没有被支持,是使用ojdbc6.jar来支持。J2SE 5.0 和 JDBC 3.0 全面支持使用ojdbc5.jar。   2.不再支持oracle.jdbc.driver。从9.0.1开始的每个release都推荐使用oracle.jdbc。这一天终于到来,在11g中,引用oracle.jdbc.driver不再通过编译。   3.j2se 1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2jdbc。   4.11gR1 Thin driver支持AES加密算法,SHA1 hash算法,RADIUS, KERBEROS,SSL认证机制.   5.支持ANYDATE和ANYTYPE类型。这两种类型自9i引入,11R1前,程序员只能通过PL/SQL操作。   6.高级队列支持。11R1提供了访问AQ的高性能接口。   7.支持数据库变更通知。   8.Thin和OCI的数据库启动和关闭。11R1提供了这样的方法来启动和关闭数据库。   9.新的工厂方法。Oracle JDBC 11R1 oracle.jdbc.OracleConnection提供了创建Oracle对象的工厂方法。   包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。   ojdbc5.jar: 适用于jdk5   ojdbc6.jar: 适用于jdk6   ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样   ---------------------------------------------------   总体讲新版本的JDBC驱动 性能强、很多bug被发现并已解决。   我遇到的,之前使用ojdbc14.jar(不记得哪个版本了)批量插入10万条,实际只插入了3万多条,其它的丢失了,换ojdbc6.jar后,一次commit批量插入100万条也OK了。   尽量使用和数据库版本一致的驱动,有bug时,换高版本的JDBC驱动试试 。

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧