Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:使用静态方法获取数据库连接_Java_Static_Static Methods - Fatal编程技术网

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

java:使用静态方法获取数据库连接,java,static,static-methods,Java,Static,Static Methods,我正在开发一个现有的基于JavaEE的应用程序。这具有以下连接到数据库的方法: public static java.sql.Connection connectionToDataBase(String jndiName,boolean flag)throws Exception { DataSource ds =(javax.sql.DataSource) initCtx.lookup(jndiName); return ds.getConnection(); } catch (Na

我正在开发一个现有的基于JavaEE的应用程序。这具有以下连接到数据库的方法:

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;
            }
        }
}

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

为什么将函数定义为静态

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

拥有一个静态方法仅仅意味着不需要类的实例来连接到DB


为了回答你的问题,你可能想考虑一下这个课程的内容。是否只希望类的实例能够连接到DB?或者您希望能够连接到DB而不引用类的实例吗?

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

使用静态方法连接数据库没有什么错。您是否未经尝试就捕获了(第5行)?我没有发布整个方法代码,因此可能缺少某些部分,这个问题的唯一目的是使用静态方法获取数据库连接是否有效。@gobernador:这不完全正确。
最后
块将始终运行。()@ig0774你说得对,我不知道。嗯,你每天都能学到一些东西。