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就可以了。