[学习]SQLite操作(一)
2021-03-01 本文已影响0人
吴敬悦
官网学习地址: 使用 SQLite 保存数据
今天就学习准备工作以及插入操作。
对于数据库我们知道有以下几步,首先要创建一个数据库,然后就是各种建表,等这一波操作完成了才能进行相关的操作。
在 android
中的 SQLite
,创建数据库还得指定版本号,我觉得是为了管理,当我觉得不应该强制要求。
在使用 SQLite
之前,首先需要继承 SQLiteOpenHelper
,在方法 onCreate
中执行创建的工作,因为创建数据库在默认情况下是非常简单的,所以不需要我们手动写创建的语句,我说的创建主要是创建跟表相关的操作:
class FeedReaderDbHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
override fun onCreate(db: SQLiteDatabase) {
// 这里是创建表,对应的 sql 语句就是 SQL_CREATE_ENTRIES 中保存的
db.execSQL(SQL_CREATE_ENTRIES)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// 这里先不管,几天不学习这个
db.execSQL(SQL_DELETE_ENTRIES)
onCreate(db)
}
override fun onDowngrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// 这里也不管
onUpgrade(db, oldVersion, newVersion)
}
// 定义相关的常量,这里是数据库名称和版本号
companion object {
const val DATABASE_VERSION = 1
const val DATABASE_NAME = "FeedReader.db"
}
}
看看 SQL_CREATE_ENTRIES
的执行语句:
private const val SQL_CREATE_ENTRIES =
"CREATE TABLE ${FeedReaderContract.FeedEntry.TABLE_NAME} (" +
"${BaseColumns._ID} INTEGER PRIMARY KEY," +
"${FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE} TEXT," +
"${FeedReaderContract.FeedEntry.COLUMN_NAME_SUBTITLE} TEXT)"
这里的表名可以直接在这里指定,也可以在专门的地方进行定义,在官网的教程里,是在其他地方定义的:
object FeedReaderContract {
object FeedEntry : BaseColumns {
const val TABLE_NAME = "entry"
const val COLUMN_NAME_TITLE = "title"
const val COLUMN_NAME_SUBTITLE = "subtitle"
}
}
这里定义好跟这个表相关的内容,在上面就可以直接使用了;如果还有其他的都可以写到这个对象中。接下来就是使用了,如果是进行写操作,那么在获取操作对象,也就是上面 FeedReaderDbHelper
类的对象时,需要获取 writableDatabase
的操作:
// 获取数据库操作对象
val dbHelper = FeedReaderDbHelper(this)
val db = dbHelper.writableDatabase
可以通过 ContentValues
来组装插入语句:
val values = ContentValues().apply {
put(FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE, "数据库")
put(FeedReaderContract.FeedEntry.COLUMN_NAME_SUBTITLE, "SQLite")
}
这里我插入的值为: title: 数据库
与 subtitle:SQLite
。接下来就可以执行插入操作了:
val newRowId = db?.insert(FeedReaderContract.FeedEntry.TABLE_NAME, null, values)
这样就成功插入了一条记录,只是我们现在还不知道怎么看,没关系,在 android studio
中有提供,在下面有个 Database Inspector
的选项卡,点开刷新一下就能够看到你所创建的。
当然除了这个方式可以,还可以使用
Filpper
来看数据库的情况。改天使用这个新东西看数据库。