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实现数据库资源的关闭操作。
在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就可以了。