java:使用静态方法获取数据库连接

时间:2012-07-13 13:56:26

标签: java static static-methods

我正在研究现有的基于Java EE的应用程序。这具有以下连接数据库的方法:

public static java.sql.Connection connectionToDataBase(String jndiName,boolean flag)throws Exception 
{
DataSource ds =(javax.sql.DataSource) initCtx.lookup(jndiName);
return ds.getConnection();
    } catch (NamingException ne) {
            throw ne;
        } finally {
            try {
                if (initCtx != null)
                    initCtx.close();
            } catch (NamingException ne) {

                throw ne;
            }
        }
}

我的问题是使用静态方法连接数据库是否正确?

2 个答案:

答案 0 :(得分:4)

为什么要将该函数定义为静态?

它不是不正确的,也没有任何约定禁止你从非静态方法调用静态方法。根据定义,非静态方法属于类的实例,而静态方法属于类本身。

使用静态方法只是意味着您不需要类的实例来连接到数据库。

要回答您的问题,您可能想要考虑该类封装的内容。您是否只希望该类的实例能够连接到数据库?或者您希望能够连接到数据库而无需引用类的实例吗?

答案 1 :(得分:0)

如果您可以使用连接池或实体管理器,则最好使用它们!