xhu_cf
xhu_cf
2011-07-27 17:31
浏览 241
已采纳

java使用JDBC连接oracle数据库总是出错java io 异常 : the newtwork adapter could not establish

java使用JDBC连接oracle数据库总是出错java io 异常 : the newtwork adapter  could not establish the connection


package staticUtil.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Database {

static {
try {
// 1、加载oracle驱动程序
Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();

}

}

private static String url = "jdbc:oracle:thin:@99.1.1.32:1521:ORCL";
private static String user = "nmc";
private static String password = "123456";

public static Connection getConnection(){
Connection connection = null;
try {
// 2、获取连接
connection = DriverManager.getConnection(url, user, password);
// System.out.println("连接成功");
} catch (SQLException e) {
e.printStackTrace();
// System.out.println("连接数据库失败!!");
}
return connection;
}

}

各方面检查都没有错,到底什么原因呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • xiaoyingSUN
    xiaoyingSUN 2011-07-29 17:26
    已采纳

    [quote]是因为要不停地反复的访问数据库,所以没有关闭。

    如果中间网络断了一下,如何实现让其不停地尝试连接数据库,直到连接成功。

    谢谢解答。 [/quote]

    如果想要不停反复访问数据库,也不需要用静态的方法
    就算你用了静态的,也要关闭啊。。。 :?

    好吧,既然你用了静态的,怎么又把connection定义成非静态的还是局部变量

    [code="java"]Connection connection = null; //删除掉这行

    //在getConnection()方法外面加上
    private static Connection connection;

    //方法里try之前先判断
    if(connection==null){
    try {
    ... ... ...
    return connection;
    } //如果当前已经有连接就返回当前的,没有再连新的[/code]

    表示很无语

    点赞 评论
  • iteye_14409
    iteye_14409 2011-07-27 17:31

    没有建立Oracle的网络监听啊!

    点赞 评论
  • lxm_yl
    ascendlin 2011-07-27 17:31

    DRIVER是这个:oracle.jdbc.driver.OracleDriver
    不是:oracle.jdbc.OracleDriver

    点赞 评论
  • apeidou
    apeidou 2011-07-27 17:31

    楼上的,那两个Driver一样用,好像只是简单的extends,
    楼主请
    telnet 99.1.1.32 1521
    很怀疑你的端口根本就没开

    点赞 评论
  • zhangMIMOSA
    zhangMIMOSA 2011-07-27 17:31
    不敢妄下断言!
    
    点赞 评论
  • xiaoyingSUN
    xiaoyingSUN 2011-07-27 18:05

    这是最外层的Exception
    把下面的错误信息发出来,才知道是你是因为监听,还是别的问题

    话说,为啥你connection要用static,用完还不关
    就算你用连接池,也不需要静态啊,连接池一建立人家就给你创建好一定数目的con,如果大量数据访问。。。 :?

    点赞 评论
  • heihei0923
    heihei0923 2011-07-27 21:37

    是不是有防火墙?
    看看他们怎么处理的
    http://yang8787jie-126-com.iteye.com/blog/458249

    点赞 评论
  • iteye_4734
    iteye_4734 2011-07-28 07:43

    和oracle的链接不对,不是driver不对,就是oracle的配置或者服务不对,还有可能是链接的问题吧。就这样

    点赞 评论
  • xiaoyingSUN
    xiaoyingSUN 2011-07-29 18:05

    [quote]静态的那个只是方法吧,获取一个连接, connection不是静态的啊 [/quote]

    事实是检验的真理
    不要自己妄断,用我的方法运行看看就知道了

    还有你所谓的方法是静态的
    请问你的方法返回的是什么???不是一个[color=red]static Connection[/color]么???
    不会再回复了

    点赞 评论

相关推荐