【问题标题】:java : Using Static Method for obtaining Database Connectionjava : 使用静态方法获取数据库连接
【发布时间】:2012-07-13 09:22:12
【问题描述】:

我正在开发一个现有的基于 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;
            }
        }
}

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

【问题讨论】:

  • 使用静态方式连接数据库没有任何问题。
  • 你没有尝试就赶上(第 5 行)吗?
  • 我没有贴出完整的方法代码,所以有些部分可能会丢失,这个问题的唯一目的是使用静态方法获取数据库连接是否有效。
  • @gobernador:这不完全正确。 finally 块将始终运行。 (see the JLS)
  • @ig0774 你说得对,我不知道。好吧,你每天都会学到一些东西。

标签: java static static-methods


【解决方案1】:

为什么将函数定义为静态的?

这不是错误的,也没有任何约定会禁止您从非静态方法调用静态方法。根据定义,非静态方法属于类的实例,而静态方法属于类本身。

拥有静态方法仅仅意味着您不需要该类的实例来连接数据库。

要回答您的问题,您可能需要考虑类封装的内容。您是否希望类的实例能够连接到数据库?或者您希望能够在不引用类实例的情况下连接到数据库?

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2015-04-27
      • 2013-08-07
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多