Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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_Android_Sqlite - Fatal编程技术网

Java 建议何时打开和关闭数据库?

Java 建议何时打开和关闭数据库?,java,android,sqlite,Java,Android,Sqlite,我正在开发一个使用数据库的应用程序,但我不知道什么时候关闭它有用 是建议每次都关闭,还是我应该一直打开直到我的应用程序关闭 感谢您在主要活动中执行以下操作: public static DataBaseConect db=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCon

我正在开发一个使用数据库的应用程序,但我不知道什么时候关闭它有用

是建议每次都关闭,还是我应该一直打开直到我的应用程序关闭


感谢您在主要活动中执行以下操作:

public static DataBaseConect db=null; 


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        db=new DataBaseConect(this);}

@Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
         db.close();
    }

当您的活动被销毁时关闭数据库

@Override
protected void onDestroy() {
    super.onDestroy();

//close db in here.

}

建议使用连接池,例如Apache commons dbcp,使用后立即关闭ResultSet、语句和连接。

我不确定代码的体系结构。
连接基本上是在DAO层打开的,关闭连接的代码应该在“finally”块中。

连接到数据库需要有限的时间。当通过域套接字或命名管道连接时,它可以忽略不计,但如果通过网络连接,或者更糟糕的是,通过开放式Internet连接,它可能会大得多。至少在请求的生命周期内保持连接。最后,您应该始终关闭它,有时当程序终止时,它会隐式地完成,但最好进行检查。

一般的共识是,在使用完数据库连接后关闭数据库连接

例如,这可能是在启动时仅使用一次连接后,您将在首次使用后关闭它


但是,您可能希望再次使用数据库连接,在这种情况下,您应该让它保持打开状态

< P>可以考虑使用<代码>内容提供者< /代码>。它还使处理来自许多活动和片段的数据库和数据变得容易。您还需要尽可能少的努力来处理数据库连接

每次查询操作都建议打开和关闭连接……有时用户可能需要一些时间来发送请求,而不建议在日志时间内保持数据库连接打开。在java中,您可以使用“Finally”块来调用连接关闭方法,在C中,您可以使用析构函数来调用连接关闭方法……或者在您完成查询执行时显式地调用连接关闭方法。

在这里前面回答:这引出了一篇很棒的文章:是的,(y)。。兄弟:把这段代码放在主活动中(应用程序中的活动)…DataBaseConect是一个类,好吧,我同意,内容提供商是一条路要走。我已经做了很多应用程序的服务和活动连接到数据库在同一时间。内容提供商处理所有连接,并确保当两个单独的线程试图同时访问数据库时,不会出现与数据库上的文件锁相关的锁问题。