SQLITE的CRUD操作

200 阅读1分钟

准备工作

写一个DbHelper,建表myitem,包含自动生成的递增id字段以及name字段与price字段,本次即对此表操作

public void onCreate(SQLiteDatabase db) {

//当表不存在时,创建表;第一字段为自增长类型

db.execSQL("CREATE TABLE IF NOT EXISTS " +

TB_NAME + "( _id integer primary key autoincrement," +

"name varchar," + "price integer"+ ")");

}

在布局文件进行相应的设计

关键代码

新建名为MyDAO的数据库访问类:

//插入记录

myDb = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name", name);

values.put("price", price);

long rowid=myDb.insert(DbHelper.TB_NAME, null, values);

//删除记录

String where = "_id=" + selId;

int i = myDb.delete(DbHelper.TB_NAME, where, null);

if (i > 0)

Log.i("myDbDemo", "数据删除成功!");

else

Log.i("myDbDemo", "数据未删除!");

//修改记录

//方法中的第三参数用于修改选定的记录

ContentValues values = new ContentValues();

values.put("name", name);

values.put("price", price);

String where="_id="+selId;

int i=myDb.update(DbHelper.TB_NAME, values, where, null);

Fragment.java:

private View view;

private MyDAO myDAO; //数据库访问对象

private ListView listView;

private List<Map<String,Object>> listData;

private Map<String,Object> listItem;

private SimpleAdapter listAdapter;

private EditText et_name; //数据表包含3个字段,第1字段为自增长类型

private EditText et_price;
private String selId=null; //选择项id

对点击的响应:

switch (v.getId()){

case R.id.bt_add:

myDAO.insertInfo(p1,p2);

break;

case R.id.bt_modify:

myDAO.updateInfo(p1,p2,selId);

Toast.makeText(getActivity(),"更新成功!",Toast.LENGTH_SHORT).show();

break;

case R.id.bt_del:

myDAO.deleteInfo(selId);

Toast.makeText(getActivity(),"删除成功!",Toast.LENGTH_SHORT).show();

et_name.setText(null);et_price.setText(null); selId=null; //提示

}

实现效果

源码地址:github.com/learnway299…

参考博客:www.wustwzx.com/as/sy/sy07.…