Android SQLite用法

1、创建SQLite数据库

需要自己创建一个类来继承SQLiteOpenHelper类

SQLiteOpenHelper类是一个创建SQLite数据库的辅助类

继承此类的时候需要重写三个方法

public dbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);

//此方法在实例化此辅助类的时候,传入相应的参数便可以自动创建数据库

//Context 上下文对象

//String   数据库名称

//CursorFactory 游标工厂,可以不填

// version   数据库版本号,更新时使用
}

@Override
public void onCreate(SQLiteDatabase db) {
//db.execSQL("create table Book(_id integer primary key," + "_name text,"
//+ "_password text)");
//Log.i("TAG", "名称为Book的表创建完成");

//此方法在数据库创建的同时执行,建表操作放在此处便可以避免表明重复而造成的程序崩溃

}

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

//数据库升级时使用

}

2、数据库的增、删、改、查

  

 在需要创建数据库的类中实例化辅助类,并且获取SQLiteDatabases 对象

  1、

  dbHelper dbh;//外围定义句柄值

  public SQLiteDatabase getDatabases() {//创建一个方法,用来获取SQLiteDatabases对象

  dbh = new dbHelper(MainActivity.this, "book.db", null, 1);//传入数据

                               //上下文对象,表名称,游标工厂,数据库版本号

  Log.i("TAG", "名称为book.db的数据库创建完成");//提示

  return dbh.getWritableDatabase();//返回可写的SQLiteDatabases

  }

  2  

  获取SQLiteDatabases句柄值

  SQLiteDatabase db = getDatabases();//获取控制数据

  

添加数据  

  ContentValues cv = new ContentValues();
  cv.put("_name", "liujunfei");
  cv.put("_password", "zheshimima");
  db.insert("Book", null, cv);

  //insert方法参数

  //第一个参数:需要插入的表名称

  //第二个参数:可以置空(暂时不知道)

  //第三个参数:ContentValues 需要插入数据的键值对

  Log.i("TAG", "数据插入完成");

删除数据

  db.execSQL("delete from Book where _id=2");//通过ID删除数据 必须是primary key  不然报错

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

查询数据

  

  Cursor cursor = db.rawQuery("select*from Book", null);//选择表
  while (cursor.moveToNext()) {//遍历数据
  String name = cursor.getString(cursor
  .getColumnIndex("_name"));//获取列名_name下的所有数据
  Log.i("TAG", "查询到的用户: " + name);
  Message msg = Message.obtain();
  msg.what = 1;
  msg.obj = name;
  handler.sendMessage(msg);//通过handler发送数据
  }

 

 

  Handler handler = new Handler() {
  public void handleMessage(android.os.Message msg) {
  switch (msg.what) {
  case 1:
  String result = (String) msg.obj;//获取到发送过来的数据
  list_user_name.add(result);//将发送过来的数据添加到ArrayList中
  lv.setAdapter(new ArrayAdapter<String>(MainActivity.this,
  android.R.layout.simple_list_item_1, list_user_name));
  break;

  }
  };
 };

查询特定的数据

  Cursor cursor = db.rawQuery(
  "select*from Book where _name =? and _password=?",
  new String[] { "liujunfei", "zheshimima" });//在此处填写需要查询的数据
  while (cursor.moveToNext()) {
  String name = cursor.getString(cursor
  .getColumnIndex("_name"));
  Log.i("TAG", "查询到的用户: " + name);
  }

 

转载于:https://www.cnblogs.com/MainActivity/p/6011215.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值