1

我最初是在安装了 Apache 的服务器上编码并使用此功能连接到数据库

public Connection getDBConnection()
{
java.sql.Connection conn=null;
//synchrnized(this)
    try
    {
        DriverManager.registerDriver(new OracleDriver());
        conn = DriverManager.getConnection("jdbc:oracle:thin:@dukeorrac01:1521:ORDB1","nrsc","nrsc");

    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

    return conn;        
}

可能不是最好的方法,但它确实有效。然而,我已经开始在我的本地机器上进行编码,并且我得到了 jboss 作为一个可以使用的 IDE。我已经让一切正常(排序)除了,它似乎正在连接到不同的数据库。我得到了筋疲力尽的结果集(这是不对的)。我“认为”“getConnection("jdbc:oracle....") 是建立与实际数据库的连接的原因。

当它在远程服务器上运行良好时,为什么它不能在我的本地机器上运行?

PS我是数据库/服务器配置的新手。所以,不要以为我知道设置数据库或服务器的某些步骤。另外,我最初并没有创建这个。它是给我使用的。

谢谢

4

1 回答 1

1

该错误似乎表明您没有正确关闭结果集。在下面的示例中,查看执行语句后如何关闭finally块中的这些资源。

Wrt 为什么您之前没有看到此错误可能是因为您的服务器可能有很多资源,而您的本地计算机资源有限,并且您的默认设置未修改以反映应用程序的需求。

一般来说,无论您是否在数据库上分配了足够的资源,最好进行基本的内务管理,例如关闭所有打开的结果集和语句。

public void getDBConnection() {
    Connection conn = null;
    Statement statement = null;
    ResultSet rs = null;

    try {
        connection  = DriverManager.getConnection("jdbc:oracle:thin:@dukeorrac01:1521:ORDB1","nrsc","nrsc");
        statment = connection.createStatement();
        statement.setFetchSize(Integer.MIN_VALUE);

        // Do more stuff, iterate to ResultSet etc...
    } catch (SQLException ex) {
        // Exception handling stuff
        ...
    } finally {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) { /* ignored */}
        }
        if (statment != null) {
            try {
                statment.close();
            } catch (SQLException e) { /* ignored */}
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) { /* ignored */}
        }
    }
}
于 2012-04-13T03:41:36.600 回答