SQLite数据库的简单实现

本文介绍了一个简单的Android应用中使用SQLite进行数据库操作的例子,包括数据库的创建、数据的增删改查等基本功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现功能:

clip_image002[4]

代码实现:

1、先实现SQLiteOpenHelper,以便系统可以自动创建数据库。

public class StringDBImpl extends SQLiteOpenHelper {

public static final String DBNAME = "stringdb.db";

public static final String TABLENAME ="stringtable";

public static final String COLUMN1 = "textview";

public StringDBImpl(Context context) {

super(context, DBNAME, null, 1);

}

@Override

public void onCreate(SQLiteDatabase db) {

String sql ="CREATE TABLE " + TABLENAME + "(_id integer primary key autoincrement," + COLUMN1 + " text)";

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

2Dao层,getWritableDatabasegetReadableDatabase可以立刻创建数据库,如果数据库已经存在,则得到数据库。调用其中的增删改查方法。

public class StringDao {

StringDBImpl database = null;

public StringDao(Context context) {

database = new StringDBImpl(context);

}

public long insert(String str) {

SQLiteDatabase db = database.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(StringDBImpl.COLUMN1, str);

db.insert(StringDBImpl.TABLENAME, StringDBImpl.COLUMN1, values);

}

public Cursor query() {

SQLiteDatabase db = database.getReadableDatabase();

Cursor cursor = db.query(StringDBImpl.TABLENAME, null, null, null, null, null, null);

return cursor;

}

public void delete(String str) {

SQLiteDatabase db = database.getWritableDatabase();

db.delete(StringDBImpl.TABLENAME, StringDBImpl.COLUMN1+"=?" , new String[]{str});

}

public void updata(ContentValues values,int _id) {

SQLiteDatabase db = database.getWritableDatabase();

db.update(StringDBImpl.TABLENAME, values, "_id=?", new String[]{String.valueOf(_id)});

}

}

3、主界面。这里需要注意修改阶段。

public class MainActivity extends Activity {

private StringDao dao;

private EditText editText;

private ListView listView;

private Cursor c;

private int _id;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

editText = (EditText) this.findViewById(R.id.edittext);

listView = (ListView) this.findViewById(R.id.listview);

dao = new StringDao(this);

c = dao.query();

// ListView的显示,最好用系统自带的viewItem,当然也可以找到源文件,再自行修改

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,

android.R.layout.simple_list_item_1,

c ,

new String[] {StringDBImpl.COLUMN1},

new int[] {android.R.id.text1});

listView.setAdapter(adapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view,

int position, long id) {

c.moveToPosition(position);

_id = c.getInt(0);

editText.setText(c.getString(1));

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, 0, 0, "增加");

menu.add(0, 1, 0, "修改");

menu.add(0, 2, 0, "删除");

return super.onCreateOptionsMenu(menu);

}

//用ListView动态显示数据库数据,则需要动态更新adapter,这里使用的是simpleCursorAdapter,调用其requert()即可更新adapter

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case 0:

String str = editText.getText().toString();

dao.insert(str);

c.requery();

break;

case 1:

str = editText.getText().toString();

ContentValues values = new ContentValues();

values.put(StringDBImpl.COLUMN1, str);

dao.updata(values, _id);

c.requery();

break;

case 2:

str = editText.getText().toString();

dao.delete(str);

c.requery();

break;

}

return super.onOptionsItemSelected(item);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值