在Android开发中,我们经常需要将数据保存在本地设备上。SQLite是一种轻量级的关系型数据库,被广泛用于Android应用的数据存储。在本文中,我们将介绍如何在Android应用中使用SQLite数据库。
1. 引入SQLite库
首先要做的是在你的Android项目中引入SQLite库。在项目的build.gradle
文件中,添加以下依赖:
dependencies {
implementation "androidx.sqlite:sqlite:2.1.0"
}
2. 创建数据库
在Android中,我们通常将数据库操作封装到一个单独的类中。首先,我们需要创建一个继承自SQLiteOpenHelper
的数据库帮助类。
class DatabaseHelper(context: Context) :
SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
companion object {
private const val DATABASE_VERSION = 1
private const val DATABASE_NAME = "myDatabase"
private const val TABLE_NAME = "myTable"
private const val KEY_ID = "id"
private const val KEY_NAME = "name"
}
override fun onCreate(db: SQLiteDatabase) {
val createTableQuery = "CREATE TABLE $TABLE_NAME ($KEY_ID INTEGER PRIMARY KEY, $KEY_NAME TEXT)"
db.execSQL(createTableQuery)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
val dropTableQuery = "DROP TABLE IF EXISTS $TABLE_NAME"
db.execSQL(dropTableQuery)
onCreate(db)
}
// 其他数据库操作方法...
}
在上面的代码中,我们定义了数据库的版本号、名称以及表格的名称和列名。在onCreate()
方法中,我们执行SQL语句创建一个名为myTable
的表格。
如果要进行数据库升级,我们可以使用onUpgrade()
方法,在此方法中执行升级前的清理和创建新的表格。
3. 数据库操作方法
接下来,我们可以在数据库帮助类中定义一些用于数据库操作的方法。例如,我们可以添加插入数据的方法。
fun insertData(name: String): Long {
val values = ContentValues()
values.put(KEY_NAME, name)
val db = this.writableDatabase
val id = db.insert(TABLE_NAME, null, values)
db.close()
return id
}
在上面的代码中,我们创建了一个ContentValues
对象,并使用put()
方法将数据添加到其中。然后,我们获取可写的数据库对象,将数据插入myTable
表格中,并返回插入的行的ID。
4. 使用数据库操作方法
现在,我们可以在我们的应用中使用数据库操作方法了。首先,我们需要创建数据库帮助类的实例。
val dbHelper = DatabaseHelper(context)
然后,我们可以调用数据库操作方法。
val id = dbHelper.insertData("John Doe")
5. 查询数据
查询数据也是非常常见的操作。我们可以为数据库帮助类添加一个查询方法。
fun getAllNames(): List<String> {
val names = ArrayList<String>()
val selectQuery = "SELECT $KEY_NAME FROM $TABLE_NAME"
val db = this.readableDatabase
val cursor = db.rawQuery(selectQuery, null)
if (cursor.moveToFirst()) {
do {
val name = cursor.getString(cursor.getColumnIndex(KEY_NAME))
names.add(name)
} while (cursor.moveToNext())
}
cursor.close()
db.close()
return names
}
在上面的代码中,我们使用rawQuery()
方法执行SQL查询,并使用游标遍历查询结果。最后,我们将每个查询到的名字添加到一个列表中,并返回该列表。
6. 更新和删除数据
更新和删除数据也是常见的数据库操作。我们可以为数据库帮助类添加类似的方法。
fun updateName(id: Long, newName: String): Int {
val values = ContentValues()
values.put(KEY_NAME, newName)
val db = this.writableDatabase
val rows = db.update(TABLE_NAME, values, "$KEY_ID=?", arrayOf(id.toString()))
db.close()
return rows
}
fun deleteName(id: Long): Int {
val db = this.writableDatabase
val rows = db.delete(TABLE_NAME, "$KEY_ID=?", arrayOf(id.toString()))
db.close()
return rows
}
在上面的代码中,updateName()
方法将更新指定ID的行的名字。deleteName()
方法将删除指定ID的行。
结论
SQLite是一种轻量级的关系型数据库,在Android开发中被广泛用于数据存储。本文介绍了如何在Android应用中使用SQLite数据库,并实现了插入、查询、更新和删除数据的操作。希望这篇博客对你有所帮助!
本文来自极简博客,作者:星辰之海姬,转载请注明原文链接:使用SQLite数据库在Android应用中存储数据