SQLite在Android中的典型用法

2016-04-10 08:33:11|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:Java, Android, 数据库|来源:唯设编程网

DBNewWordManager继承自DBManager,在DBManager中封装了数据库适配器类的通用方法,具体实现代码如下:

/**
 * 数据库操作控制类
 * Created by ygh on 2016/1/26.
 */
public abstract class DBManager {
    protected DBHelper helper;
    protected SQLiteDatabase db;
    protected String tag;
    protected Context _context;
    public DBManager(Context context){
        this._context = context;
        helper = new DBHelper(this._context);
        //因为getWritableDatabase内部调用了mContext.openOrCreateDatabase(mName, 0, mFactory);
        //所以要确保context已初始化,我们可以把实例化DBManager的步骤放在Activity的onCreate里
        db = helper.getWritableDatabase();
    }
    /**
     * close database
     */
    public void closeDB() {
        db.close();
    }
    public abstract void add(List<DataItem> items);
    public abstract boolean add(DataItem item);
    public abstract boolean delete(DataItem item);

    public abstract void clearTables();
    public abstract Cursor queryTheCursor();
    public abstract List<DataItem> query();
    public abstract void query( DataItem dataItem);
}

在DBManager中我们创建了一个SQLiteDatabase类型的protected变量db,用来实现数据库的操作。在DBManager的构造函数中完成了DBHelper和SQLiteDatabase类型成员变量的初始化。

注意:在调用DBManager完成以后需要调用closeDB实现数据库资源的关闭操作。

3. 数据库适配器类的调用

在Activity类的变量声明区域,我们创建一个对应数据库适配器类型的成员变量:

    /**
     * 生词表操作类
     */
    private DBNewWordManager dbNewWordManager = null;

在构造函数中完成dbNewWordManager的初始化:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //翻译器
        wordTranslator = new WordTranslator();
        //生词表操作类
        dbNewWordManager = new DBNewWordManager(this);
        //省略其余部分代码
   }

在Activity类的onDestroy需要调用DBNewWordManager的closeDB关闭数据库资源:

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //生词表操作类
        dbNewWordManager.closeDB();
        //单词操作工具类
        dbQueryResultManager.closeDB();
        //查询历史记录
        dbHistoryWordManager.closeDB();
    }

下面的代码演示了调用DBNewWordManager的query对生词进行查询:

//3.生词
NewWord newWord = new NewWord(queryResult.getWord());
dbNewWordManager.query(newWord);
//添加到生词表菜单设置
if (null != addMenuItem) {
    //是否是生词
    if (newWord.isQuerySucceeded()) {
        queryResult.setGlossary(true);
        addMenuItem.setTitle(R.string.remove_glossary);
    }else {
        queryResult.setGlossary(false);
        addMenuItem.setTitle(R.string.add_glossary);
    }
}

到此,通过口袋英语的生词相关操作介绍了Android中SQLite数据库的使用方法,只要掌握了基本的操作流程,具体语法查询相应的API就可以了。

<123>
发表评论0条 】
网友评论(共?条评论)..
SQLite在Android中的典型用法