美文网首页
Android SQLite数据库使用

Android SQLite数据库使用

作者: NullUser | 来源:发表于2018-07-15 21:05 被阅读0次

SQLite是一种轻量级的数据库,适合用作手机等移动端的数据储存。Android系统内置了SQLite数据库。

创建数据库

  • SQLiteOpenHelper,该类是Android提供给我们的便于管理数据库的一个类,里面有两个重要方法需要我们在继承时进行重写。分别是onCreate(),在数据库创建时会调用;onUpgrade(),对数据库升级时调用。另外还提供了创建数据库的方法:getReadableDatabase()、getWritableDatabase().上述方法在调用时,如果数据库不存在,则会创建新的数据库,调用onCreate()方法。如果已经存在,则只返回一个当前数据库的SQLiteDatabase对象,onCreate()方法不会调用。

  • getReadableDatabase():该方法得到的数据库对象,可以对其进行读写操作,但是磁盘空间不足时,数据库将会是只读状态。

  • getWritableDatabase():该方法得到的数据库对象同样可以进行读写操作,当磁盘空间不足时,将抛出异常。

  • SQLiteDatabase,该类是一个数据库访问类,便于我们对数据库进行一些增删改查等操作。

具体实现:
1.新建类继承自SQLiteOpenHelper

public class MyDataBaseHelper extends SQLiteOpenHelper {
    //SQL建表语句
    public static final String CREATE_BOOK = "create table book (id integer primary key autoincrement, " +
                                                                "name text, " +
                                                                "author text, " +
                                                                "price real, " +
                                                                "pages integer)";

    public MyDataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //调用SQLiteDatabase的execSQL()方法执行SQL语句。此处执行了建表语句
        db.execSQL(CREATE_BOOK);
    }

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

    }
}

2.创建数据库

//接收参数分别为Context、数据库名、自定义Cursor,传入null即可、数据库版本号
MyDataBaseHelper myDBHelper = new MyDatabaseHelper(this,"BOOK.db",null,1);
myDBHelper.getWritableDatabase();

添加数据

1.我们将要添加的一行数据放入ContentValues对象。通过put()方法设置对应列的值。

ContentValues contentValues = new ContentValues();
contentValues.put("name","book1");
contentValues.put("author","author1");
contentValues.put("price",100);
contentValues.put("pages",998);

2.得到SQLiteDatabase对象,调用insert()方法即可新增一条数据。

SQLiteDatabase database = myDBHelper.getWritableDatabase();
//第一个参数传入表名,第三个参数传入ContentValues对象。
database.insert("book",null,contentValues);

删除数据

调用SQLIteDatabase的delete()方法即可删除对应条件的数据。第一个参数为表名,第二、三个参数用于约束删除条件。如删除表中价格大于50的书

database.delete("book","price > ?",new String[]{"50"});

相关文章

网友评论

      本文标题:Android SQLite数据库使用

      本文链接:https://www.haomeiwen.com/subject/hmxmpftx.html