安卓学习笔记(5)-SQLite的使用

​ Android 提供了对 SQLite 数据库的完全支持。应用中的任何类(不包括应用外部的类)均可按名称访问自己所创建的任何数据库。

​ 创建新 SQLite 数据库的推荐方法是创建 SQLiteOpenHelper 的子类并覆盖 onCreate() 方法,在此方法中,可以执行 SQLite 命令以创建数据库中的表。

Db.java

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Db extends SQLiteOpenHelper {

    public Db(Context context) {
         //第二个参数是数据库的名称,第四个参数是数据库的版本
        super(context, "db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
      //创建一个表名称为“user”,这个表里有两列数据name和score
      db.execSQL("CREATE TABLE user("
                 + "_id INTEGER PRIMARY KEY AUTOINCREMENT,"//这个参数必须要
                 + "name TEXT DEFAULT \"\"," 
                 + "score INTEGER \"\",");
    }

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

    }

}

关于”_id INTEGER PRIMARY KEY AUTOINCREMENT,”安卓官方是这么说的:

Android 没有实施标准 SQLite 概念之外的任何限制。我们推荐包含一个可用作唯一 ID 的自动增量值关键字段,以便快速查找记录。 私有数据不要求这样做,但如果您实现了一个内容提供程序,则必须包含使用 BaseColumns._ID 常量的唯一 ID。

以此作为数据库的一个基类,可以通过用 getWritableDatabase()getReadableDatabase()进行数据库的读写操作。

private Db db;
private SQLiteDatabase dbwrite;
private ContentValues cv;
private Cursor cursor = null;

db = new Db(MainActivity.this);
dbRead = db.getReadableDatabase(); //读操作
dbwrite = db.getWritableDatabase();//写操作

//写操作
cv = new ContentValues();//初始化一个ContentValues,方便对每类数据进行操作
cv.put("name", "Tom");   //将name这一类数据设为Tom
cv.put("score", 100);    //设置score为100
dbwrite.insert("user", null, cv);  //把数据插入user表
dbwrite.close();                   //写操作完成之后一定要close

//读操作

//关于查询数据库,就是query函数的功能,这里就不赘述了
cursor = dbRead.query("user", null, null, null, null, null, "score desc"); //按score降序排列读出
//再将数据从cursor中取出来就行
while (cursor.moveToNext()) {
  System.out.println(cursor.getString(cursor.getColumnIndex("name"))
                   + cursor.getString(cursor.getColumnIndex("score"));
}

//删除数据
bwrite.delete("user", "score=?",new String[] {"99","100"}); //删除表user中score等于99和100的数据
bwrite.delete("user", "name=?",new String[] {"Tom"});       //删除表user中name为Tom的数据                     

//关于查询数据库,就是query函数的功能,这里就不赘述了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值