在前文中总结了sqlite数据库的基本用法,本文中将使用sqliteOpenHelper和单例模式来操作数据库。sqliteOpenHelper是Android提供的一个管理数据库的工具类,可以用于管理数据库的创建和版本更新。一般的用法是创建它的子类,并扩展它的onCreate()和onUpgrade方法。
同上文一样,数据仍是手动写死的,实际情况应该根据业务需求从界面或其他地方获取,实例代码如下,关键是后面两个类:
Activity:
- packagecom.lovo.activity;
- importandroid.app.Activity;
- importandroid.database.Cursor;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.widget.TextView;
- importcom.lovo.dao.StuDao;
- importcom.lovo.databasetest.R;
- publicclassDatabaseTestActivityextendsActivity{
- privateTextViewshow;
- privateStuDaodao;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- show=(TextView)findViewById(R.id.main_tv_show);
- dao=newStuDao(this);
- }
- voidclick(Viewv){
- switch(v.getId()){
- caseR.id.main_btn_insert:
- //添加数据
- dao.insert("张三",24,"男");
- break;
- caseR.id.main_btn_delete:
- //根据指定ID删除数据
- dao.del(2);
- caseR.id.main_btn_update:
- //根据指定ID修改数据
- dao.update("王斌",0); background-color:inherit">34,"男",0); background-color:inherit">1);
- caseR.id.main_btn_find:
- StringBuffersb=newStringBuffer();
- //查询所有数据
- Cursorcursor=dao.findAll();
- //根据指定ID查询数据
- //Cursorcursor=dao.findById(1);
- while(cursor.moveToNext()){
- intid=cursor.getInt(cursor.getColumnIndex("_id"));
- Stringname=cursor.getString(cursor.getColumnIndex("s_name"));
- Stringsex=cursor.getString(cursor.getColumnIndex("s_sex"));
- intage=cursor.getInt(cursor.getColumnIndex("s_age"));
- sb.append(id+""+name+""+sex+""+age+"\n");
- }
- show.setText(sb.toString());
- break;
- }
布局XML:
[html]
copy