Prompt Detail:
Шаблон работы с SQLite в стиле ООП на Kotlin может быть следующим:
- Создайте класс
DatabaseHelper
, который будет отвечать за управление базой данных:
kotlinimport android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
companion object {
private const val DATABASE_NAME = "mydatabase.db"
private const val DATABASE_VERSION = 1
}
override fun onCreate(db: SQLiteDatabase) {
// Создание таблицы или выполнение других необходимых операций при создании базы данных
val createTableQuery = "CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT);"
db.execSQL(createTableQuery)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// Обновление схемы базы данных или выполнение других необходимых операций при обновлении версии
val dropTableQuery = "DROP TABLE IF EXISTS mytable"
db.execSQL(dropTableQuery)
onCreate(db)
}
fun insertData(name: String) {
val db = writableDatabase
val query = "INSERT INTO mytable (name) VALUES ('$name');"
db.execSQL(query)
db.close()
}
fun getData(): List<String> {
val db = readableDatabase
val query = "SELECT * FROM mytable;"
val cursor = db.rawQuery(query, null)
val dataList = mutableListOf<String>()
if (cursor.moveToFirst()) {
do {
val name = cursor.getString(cursor.getColumnIndex("name"))
dataList.add(name)
} while (cursor.moveToNext())
}
cursor.close()
db.close()
return dataList
}
}
- Используйте
DatabaseHelper
для выполнения операций с базой данных в других частях вашего кода. Например, в активити или фрагменте:
kotlinclass MainActivity : AppCompatActivity() {
private lateinit var dbHelper: DatabaseHelper
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
dbHelper = DatabaseHelper(this)
// Вставка данных в базу данных
dbHelper.insertData("John")
dbHelper.insertData("Alice")
dbHelper.insertData("Bob")
// Получение данных из базы данных
val data = dbHelper.getData()
for (name in data) {
Log.d("MyApp", "Name: $name")
}
}
override fun onDestroy() {
super.onDestroy()
dbHelper.close()
}
}
В приведенном примере создается экземпляр DatabaseHelper
внутри активности MainActivity
, выполняются операции вставки данных в базу данных и получения данных из базы данных. При завершении работы активности необходимо вызвать метод close()
для закрытия базы данных.
Add a comment