SQLite 在 Android 的应用

Posted luoxu34

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite 在 Android 的应用相关的知识,希望对你有一定的参考价值。

android提供了创建和使用SQLite数据库的API(Application Programming Interface,应用程序编程接口)。

在Android系统中,主要由类SQLiteDatabase和SQLiteOpenHelper对SQLite数据库进行管理和操作。

 

(一)SQLiteOpenHelper类


SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。

因为是个抽象类,所以必须创建一个类来继承它,并实现两个抽象的方法onCreate()和onUpgrade()方法。

方法 说明

SQLiteOpenHelper(Context context, String name,

  SQLiteDatabase.CursorFactory factory, int version)

构造方法
abstract  void onCreate(SQLiteDatabase db) 创建数据库时调用
abstract  void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
升级数据库时调用
void onOpen(SQLiteDatabase db)  打开数据库时调用
SQLiteDatabase getReadableDatabase()
创建或打开数据库
SQLiteDatabase getWritableDatabase() 创建或打开一个读写数据库

下面是一个具体的例子:DatabaseHelper.java

private static class DatabaseHelper extends SQLiteOpenHelper {

    static final String DATABASE_NAME = "College.db";
    static final int DATABASE_VERSION = 1;
    static final String STUDENTS_TABLE_NAME = "students";
    static final String CREATE_DB_TABLE =
        " CREATE TABLE " + STUDENTS_TABLE_NAME +
        " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
        " name TEXT NOT NULL, " +
        " grade TEXT NOT NULL);";

    DatabaseHelper(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL(CREATE_DB_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + STUDENTS_TABLE_NAME);
        onCreate(db);
    }
}

 

(二)创建数据库


在Activity中创建数据库对象,可能是在onCreate()方法或事件中创建:

DatabaseHelper database = new DatabaseHelper(this);
SQLiteDatabase db = null;
db = database.getWritableDatabase();

首先实例一个SQLiteOpenHelper帮助类的对象,然后调用该对象的getWritableDatabase() 或 getReadableDatabase()方法 获得SQLiteDatabase 数据库对象。

 

另外2种创建的方法:

1、应用SQLiteDatabase对象openDatabase()方法及openOrCreateDatabase()方法创建数据库;

2、应用Activity继承于父类android.content.Context创建数据库的方法openOrCreateDatabase()来创建数据库。

 
 

(三)SQLiteDatabase 类


方法 说明

openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory  factory)

打开或创建数据库

openDatabase(String path,  SQLiteDatabase.CursorFactory  factory,int flags)

打开指定的数据库

insert(String table, String nullColumnHack, ContentValues  values)

新增一条记录

delete(String table,String whereClause, String[]  whereArgs)

删除一条记录

update(String table,ContentValues values, String whereClause,String[]  whereArgs)

 修改记录

query(String table,String[] columns, String selection, String[]selectionArgs,

String groupBy,String having, String orderBy)

查询一条记录
execSQL(String sql)  执行一条SQL语句
close()  关闭数据库

 

(四)增删改查


 

以上是关于SQLite 在 Android 的应用的主要内容,如果未能解决你的问题,请参考以下文章

如何在片段中访问 SQLite 数据到 ListView

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

当sqlite android片段中的数据更改或删除时如何刷新recyclerview?

如何使用 android 中的 SQLite 扩展类在数据库中插入值?

Android:片段无法转换为上下文[重复]

Android Studio - 在片段之间更改时底部导航崩溃