bye9bye
skming美女相册
2008-09-24 16:48
浏览 229
已采纳

查询oracle列表时遇到的奇怪问题

做项目中遇到一个很奇怪的问题。
同一部分内容。需要查询某一个外部指定用户密码的oracle的指定表的记录。

public static List getDbConnByDbID(EntityDAO dao,String strdbid)throws Exception{
        Connection conn=null;
        List ls = new ArrayList();
        DbSource db = (DbSource)DbSource.getDbSourceBydbid(dao,strdbid);
        if (db != null) {
            String DbSourceName = CommonTools.getStrToGb2312(db.getM_strDbSourceName());//数据源名字
            String DbSID = CommonTools.getStrToGb2312(db.getM_strDbSid());//数据服务器名字
            String DbDataType = CommonTools.getStrToGb2312(db.getM_strDbType());//数据库类型
            String DbDatabaseHost = CommonTools.getStrToGb2312(db.getM_strDbHost());//数据库服务器地址
            String DbDatabasePort = CommonTools.getStrToGb2312(db.getM_strDbPort());//数据库端口.
            String DbUserName = CommonTools.getStrToGb2312(db.getM_strDbUserName());//用户名
            String DbPassword = CommonTools.getStrToGb2312(db.getM_strDbPassword());//密码

            if (DbDataType.equals("Oracle")) {
                String url = "jdbc:oracle:thin:@" + DbDatabaseHost + ":" + DbDatabasePort + ":" + DbSID;
                DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                conn = DriverManager.getConnection(url, DbUserName, DbPassword);
                if (conn != null) {
                    ls = getAllTables(conn);
                } else {
                    System.out.print("无Oracle数据库连接");
                }

            }
            
            if(DbDataType.equals("SqlServer2005")){
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
               String URL = "jdbc:sqlserver://"+DbDatabaseHost+":"+DbDatabasePort+";DatabaseName="+DbSID;
               conn = DriverManager.getConnection(URL, DbUserName, DbPassword);
               if (conn != null) {
                   ls = getAllTables(conn);      
               }else {
                   System.out.print("无SqlServer2005数据库连接");
               }
                  
            
            }
   
            if(DbDataType.equals("SqlServer2000")){
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
               String URL = "jdbc:sqlserver://"+DbDatabaseHost+":"+DbDatabasePort+";DatabaseName="+DbSID;
               conn = DriverManager.getConnection(URL, DbUserName, DbPassword); 
               if (conn != null) {
                   ls = getAllTables(conn); 
               }else {
                   System.out.print("无SqlServer2000数据库连接");
               }
                        
            
            }
            
            if(DbDataType.equals("MySql")){

                String url = "jdbc:mysql://"+DbDatabaseHost+":"+DbDatabasePort+"/"+DbSID;
                 Class.forName("com.mysql.jdbc.Driver");
                 conn = DriverManager.getConnection(url,DbUserName,DbPassword);
                 if (conn != null) {
                 ls = getAllTables(conn);
                 }else {
                     System.out.print("无MySql数据库连接");
                 }
            }

        }
        
        return ls;
    
    
    
    }



调试的过程中,在conn = DriverManager.getConnection(url, DbUserName, DbPassword);

的时候就错误提示了。

错误提示如下:

ava.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at com.catalogEx.dbmanage.action.DataSource.DbSourceQueryTables.getDbConnByDbID(DbSourceQueryTables.java:85)
    at com.catalogEx.dbmanage.action.DataSource.DbSourceQueryTables.catalogExec(DbSourceQueryTables.java:45)
    at com.catalogEx.dbmanage.action.ActionService.performAction(ActionService.java:50)
    at com.catalogEx.dbmanage.service.DbManageService.service(DbManageService.java:93)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
    at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
    at com.caucho.server.http.Invocation.service(Invocation.java:315)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
    at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
    at java.lang.Thread.run(Thread.java:595)


可我本地用plusql是可以打开的。 表也是可以看到的。
jar包也是都有的。

想让大家帮忙看下哪里有问题。
另外说下,我之前用的是2000系统这代码实际上是运行过一段时间的。都是正常的。
最近因为要新加功能,机器又中了度换了个2003就成这了。

 

 

 

我重新编辑了后错误提示为

he Network Adapter could not establish the connection

 

真的是


问题补充:
后来我把代码弄成了一个简单的测试程序

try{

  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@172.16.1.99:1251:chen", "dbmanage", "dbmanage");

}catch(Exception ex){

Logger.info("ex="+ex.getMessage());

}



提示错误为:Io 异常: The Network Adapter could not establish the connection
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • iteye_19018
    iteye_19018 2008-09-25 09:44
    已采纳

    端口默认是1521吧,不是1251

    点赞 评论
  • lggegegmail
    lggegegmail 2008-09-24 17:32

    是否需要更新jdbc的驱动 ?? :oops:

    点赞 评论
  • iteye_19018
    iteye_19018 2008-09-24 17:53

    升级一下oracle驱动呢

    点赞 评论

相关推荐