日期:2014-05-16  浏览次数:20452 次

JDBC连接Oracle操作详解

在进一步学习之前,先学习通过JDBC访问数据库。
目的:为了更好的体会后面所学的知识点,如:异常、事务等概念。


需求:通过JDBC连接到教师机的Oracle数据库
操作:
1、(学生)在Eclipse写出JDBC连接数据库的代码。
提示:
Class.forName("驱动类名");
Connection conn = DriverManager.getConnection(数据库地址,用户名,密码);
System.out.println("连接成功");
conn.close();
2、在Oracle安装目录下(如:d:\oracle),单击“搜索”,输入“class*.jar”,然后在“\jdbc\lib”目录下寻找jar包,名字是:“classes12.jar”。
3、将此jar包复制到java项目中,并且添加到“构建路径”。
4、展开jar包,找到驱动类的名称,并复制:oracle.jdbc.driver.OracleDriver
5、数据库根据固定格式写:jdbc:oracle:thin:@数据库IP地址:1521:全局数据库名
说明:
jdbc:oracle:thin:表示协议,相当于上网用的“http:”。
数据库IP地址:用ipconfig可以查到。目前教师机查到的是:192.168.1.199。
1521:Oracle数据库的端口,通常不用修改。
全局数据库名:通常在安装时指定,默认为:orcl。
即在程序中书写的地址为:jdbc:oracle:thin:@192.168.1.199:1521:orcl
6、启动时报错:Io 异常: The Network Adapter could not establish the connection
分析一:
·要连接到数据库,首先要保证Oracle服务要启动。所以先启动:OracleServiceORCL。
·强调,客户端编写java的电脑,不需要启动本机的任何Oracle服务。
运行,相同的错误仍然存在。
分析二:
·要访问所有的网络程序,网络程序都必须运行一个在某个端口监听的程序(相当于公司的前台接待,没有前台接待,是不能见到老板的)。java程序要连接到Oracle,必须先连接到监听器。对Oracle来讲,这就是监听服务:OracleoracleTNSListener。Oracle10G的监听服务名称不同,但仍然是以“TNSListener”结尾的名称。
7、如果监听服务能够正常启动,则java程序也可以连接到Oracle数据库了。

常见问题:启动监听服务报错,或者启动以后没有报错,但是单击“刷新”发现实际上并没有启动。如何解决?
分析:
Oracle的监听器的信息对应的IP地址不正确,必须将这个IP地址改为本机的IP地址。
步骤:
·找到Oracle的菜单,再找到“net manager”程序→Oracle NET配置→本地→监听程序→将“主机”右边的文本框修改为本机的IP地址
·最后一定要保存修改,步骤:单击菜单“文件”→“保存”网络配置。
·再次启动Oracle监听服务,并刷新,看是否启动成功。
·如果监听服务启动成功,则jdbc在正常情况下也能够连接到Oracle了。

·作为经验,如果出现了“ TNS:listener does not currently know of SID given in connect descriptor”。则只需要再将OracleServiceORCL服务重新启动一下。
·作为经验,如果使用“localhost”连接不上,则使用本机实际的IP地址,通过ipconfig得到。


最后说明,在熟悉Oracle以后,应该先启动Oracle监听器,再启动Oracle服务。

?

练习:通过JDBC连接到某同学的Oracle数据库

?

?

附:端口的理解及常用端口号

端口号:我们知道,为了区别每个学生,每个学生都要分配一个唯一的学号。同理,为了区别服务器上每个网络监听程序,每个监听器都要分配一个唯一的端口号。端口号,相当于就是“网络程序的身份证”。

常用端口号:SQLServer:1433;Oracle:1521,Web服务器:80( http://g.cn,其实是 http://g.cn:80/),Tomcat:8080