Sqlite数据库连接最佳实践

时间:2017-03-06 21:18:11

标签: multithreading sqlite

我在iOS应用中使用Sqlite数据库。我想确认使用连接的最佳做法是什么。是否可以获得所有数据库调用的连接或创建静态连接变量并重用它。

目前我有一些事情,但有时我得到数据库忙错误

    public SQLiteConnection CreateConnectionString()
    {
        SQLiteConnection conn = new SQLite.SQLiteConnection(databsePath);

        return conn;
    }


    public Employee GetEmployeeObject()
    {
        Employee amp = null;

        var conn = CreateConnectionString();
        var employeeObj = conn.Table< Employee >();

        return employeeObj;
    }


    public void InsertEmployeeData(Object inserObject)
    {

        var conn = CreateConnectionString();

        using (conn)
        {
            conn.Insert(inserObject);
        }

    }

如果多个线程试图插入,那么我会收到Database Busy错误。关于这个问题有很多帖子,但我无法找到确切的解决方案。

1 个答案:

答案 0 :(得分:0)

没有必要为每个数据库访问重新创建数据库连接。

但是多个线程会相互干扰。所以每个线程都应该有自己的连接。