本地机器上的数据库连接

时间:2012-04-12 22:30:02

标签: database jdbc jboss

我最初在安装了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来使用。我已经完成了所有工作(sorta),但它似乎连接到不同的数据库。我得到了精疲力竭的结果集(这是不对的)。我“认为”“getConnection(”jdbc:oracle ....“)是建立与实际数据库的连接的原因。

为什么在远程服务器上完全正常工作时,我的本地计算机无法正常工作?

P.S。我是数据库/服务器配置的新手。所以,不要假设我知道设置数据库或服务器的一些步骤。另外,我没有创建这个orginally。它是给我使用的。

由于

1 个答案:

答案 0 :(得分:1)

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

W.r.t之前您没有看到此错误的原因可能是因为您的服务器可能拥有大量资源,而您的本地计算机资源有限且未修改默认设置以反映应用程序的需求。

一般情况下,最好是进行基本的内务管理,比如关闭所有打开的结果集和语句,无论你的数据库是否有足够的资源分配。

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 */}
        }
    }
}