2011-05-19 128 views
2

什么被认为是处理数据库连接的最佳实践? (我忽略了DatabaseHelper类中的构造函数和onUpgrade方法)这些只是我在互联网上找到的两种方式,也许你有更好的处理方式?我很想听到。Android数据库连接最佳实践

选项1

public class DatabaseManager { 

private SQLiteDatabase mDb; 

public DatabaseManager(Context context) { 

    DatabaseHelper helper = new DatabaseHelper(context); 
    helper.getWritableDatabase(); 
} 

// ... methods that use mDb 

private class DatabaseHelper extends SQLiteOpenHelper { 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     mDb = db; 
     //create database 
    } 

    @Override 
    public void onOpen(SQLiteDatabase db) { 

     mDb = db; 
    } 
} 

}

选项2

public class DatabaseManager { 

private DatabaseHelper mDbHelper; 

public DatabaseManager(Context context) { 

    mDbHelper = new DatabaseHelper(context); 
} 

// ... methods that fetch the db 

private void sampleMethod() { 
    SQLiteDatabase db = mDbHelper.getWritableDatabase(); 
    //do stuff with database 
    mDbHelper.close(); 
} 

private static class DatabaseHelper extends SQLiteOpenHelper { 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     //create database 
    } 
} 

}

而且,是它需要调用close()每次你选择2中使用的数据库?至于使用选项1,我猜你需要在应用程序的onDestroy被调用时调用close()方法?

回答

1

我曾担心这一切,但最近我开始使用ORMLite。这是一个非常轻的ORM与Android库,并节省您担心这种东西。

我会说这很快就会成为最佳实践,因为它在处理数据库时会消除大量重复的代码。它也会定期更新,维护人员会很快响应查询。