JDBC连接Oracle数据库问题

时间:2022-04-08 13:09:52
今天早上解决了一个jdbc连接oracle数据库问题,看到网上的人都对这个问题都觉得无从下手,这里我就说一下我是怎么解决的,给大家参考参考。希望能帮到大家;          昨天,在做servlet连接oracle数据库的时候,在tomcat上调试搞得真郁闷,老是出现: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:273)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:318)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:343)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:147)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:31)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
        我百度谷歌找了一天都没有好的解决方法,我先是检查了一下自己的语法有没有错误,发现没错了,就很郁闷了,在想难道jre版本对不上,所以就去查看一下tomcat上的输入startup.bat的启动时候的jre版本发现可以支持,没有错误啊!然后又对着电脑在想会不会上兼容性问题,所以我就去百度上找一下tomcat的兼容性问题我心里就好像豁然开朗,说不定真是兼容性问题啦,因为我用的版本是tomcat6.0和oracle10g可能是版本不兼容,但是我从网上重新下载过tomcat5.0,又重新试了一次,失败了,还是出现同样的问题,于是我又找了tomcat4.0来试一下,结果又是失败了,所以断定不是兼容性问题。这就很郁闷,然后就不断在网上浏览,看到很多这样的问题还是得不到解决,唉!这时我差点就放弃了这个问题的解答,但是我突然想到还有一个方向没有考虑到的就是oracle的网络配置问题,网上也有说到这个问题,于是我又试了一下重新配置一下oracle的网络配置问题,我说一下步骤: 1、就是在开始菜单中找到oracle的目录找到Net Configuration Assistant,这个就是oracle的网络配置
2、进去以后选择本地Net服务名配置,然后点击下一步
3、点击重新配置 4、输入服务名:local,点下一步 5、选择tcp,下一步 6、输入自己的主机名,可以通过我的电脑右击――》属性――》计算机名,就能看到自己本地的主机名,然后输入进去点下一步 7、进行测试,可以通过“更改登录”来更改用户名。 然后神奇的事情出现了,错误没出现了,数据库连接上了,所以皇天不负有心人啊!          现在总结一下解决这个问题的基本步骤:        1、查看oracle的监听器等服务是否已经启动了        2、当你通过JDBC连接Oracle数据库时发生了异常首先应该确认你的JRE是否配置正确,一般oracle10g,JRE1.4以上应当使用ojdbc14.jar。        3、其次你要确定你的Java语法是否错误,这里的语法是指连接数据库的URL上的协议的格式例如:jdbc:oracle:thin:@127.0.0.1:1521:pg,淡红色表示使用thin方式(瘦客户机)连接,黑色部分表示数据库的IP,青色表示监听程序所使用的端口默认1521,最后深红色表示数据库的全局ID,完整写法应当为SID.Domain。        4、当你确定你的程序和JRE配置正确仍有异常的时候,你需要查看一下你的Oracle网络配置,一般一个监听程序可以监听多个数据库实例。如果你的数据库实例是安装的时候由安装程序自动创建的,那么你的Oracle网络配置会给你配置好的。如果你的实例是自己创建的,你就要自己重新配置一下oracle的网络配置

本文出自 “谭自强的奇思妙想” 博客,请务必保留此出处http://tanziqiang.blog.51cto.com/2105783/393965