一般是你的oracle客户端未正确连上服务器

解决方案 »

  1.   

    去oracle官站上下载最新jdbc驱动试试
    到DB服务器本地执行试试
      

  2.   

    /*
     thin方式
     Oracle OCI Thin Type 4 Driver
     Class: oracle.jdbc.driver.OracleDriver
     URL: jdbc:oracle:thin:@:: 先到Oracle技术网(http://otn.oracle.com/global/cn/software/tech/java/sqlj_jdbc/index.html)下载Oracle JDBC Drivers,同样地将下载后的zip文件的路径设置在环境变量classpath。 然后通过以下的数据库连接类,在本地通过thin方式获得Oracle数据库连接。
     *//**
     * 在本地获得数据库连接
     */import java.util.*;
    import java.sql.*;
    import javax.sql.*;
    import java.io.*;
    import oracle.jdbc.driver.*;
    import javax.naming.*;/**
     * 通过thin方式获得Oracle数据库连接
     */
    //javac OracleThin.java
    //java OracleThin
    public class OracleThin
    {
        final static String sDBDriver = "oracle.jdbc.driver.OracleDriver";
        private String sConnStr = "";    /**
         * @param ip,serviceName
         */
        public OracleThin(String ip,String serviceName)
        {
            sConnStr = "jdbc:oracle:thin:@" + ip + ":1521:" + serviceName;
        }    /**
         * 通过thin方式获得Oracle数据库的连接.
         * @param userId,password
         */
        public Connection connectByJdbc(String userId,String password)
        {
            Connection conn = null;
            try
            {
                Class.forName(sDBDriver);
                conn = DriverManager.getConnection(sConnStr,userId,password);
                Statement stmt = conn.createStatement();
                ResultSet rsTemp = null;
                rsTemp = stmt.executeQuery("Select User,SysDate,RowID From Dual");
                while(rsTemp.next())
                {
                    System.out.print(rsTemp.getString("User") + "\t" + rsTemp.getString("SysDate") + "\t" + rsTemp.getString("RowID"));
                }
            }
            catch(Exception e)
            {
                System.out.println("Error:" + e.getMessage());
                e.printStackTrace();
            }
            return conn;
        }    public static void main(String[] args)
        {
            String strServer = "localhost";
            String strOracle = "ORCL";
            String strUserName = "SYSTEM";
            String strPassWord = "YuLimin";        if(args.length == 4)
            {
                strServer = args[0];
                strOracle = args[1];
                strUserName = args[2];
                strPassWord = args[3];
            }
            System.out.println("Connect " + strServer + ":" + strOracle);
            OracleThin oracleThin = new OracleThin(strServer,strOracle);
            oracleThin.connectByJdbc(strUserName,strPassWord);
        }
    }//这种方式运用起来比较灵活,简单,具有较强的移植性和适用性。
    //只要注意连接字符串"jdbc:oracle:thin:@localhost:ORCL"中具体参数的设置即可。
      

  3.   

    照楼上的做了,编译可以通过,数据库可以用其他工具连上,
    就是JAVA连时有问题,驱动没问题,是不是数据库的问题。
    (我有两快网卡,不知道有没哟问题)G:\Thinking In Jave>java OracleThin localhost oradb scott tiger
    Connect localhost:oradb
    Error:Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153092352)(ERR=1250
    )(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
    java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=15
    092352)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
            at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:334        at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.j
    va:442)
            at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at OracleThin.connectByJdbc(OracleThin.java:37)
            at OracleThin.main(OracleThin.java:71)
      

  4.   

    我想跟两块网卡应该是没有关系的吧。连接拒绝的提示信息啊。你Telnet一下看是什么信息?