Base de datos local Kelola di Android dengan Room | Android jetpack | Autor: dhiva tiradika | Octubre 2021
Habitación merupakan salah satu komponen dari Android Jetpack. Bagi yang belum familiar dengan Android Jetpack, Android Jetpack adalah serangkaian Biblioteca yang dikembangkan oleh Google yang dapat membantu para Desarrollador untuk menerapkan Lo mejor práctica dalam menuliskan kode, mengurangi Plantilla, serta menuliskan kode secara konsisten di berbagai versi dan perangkat android.
Habitación adalah ORM atau Mapeador relacional de objetos untuk SQLite, ORM adalah sebuah teknik yang memetakan table menjadi sebuah object, nantinya object tersebut memiliki característica Yang Sebian y col. sitio Yangadapada mesa.Jadi nantinya data pada database dapat lebih mudah dimanipulasi dengan pendekatan Orientado a objetos.
- Consulta SQL Divi Vikassat Compilar tiempo. Setiap pedir Carga entidad akan dicek saat kode dicompile, hal ini akan mencegah aplikasi colisión saat dijalankan, kenapa? Karena jika ada kesalahan pada pedir maka kode gagal dicompile dan aplikasi tidak akan dijalankan.
- Tidak Adakod Plantilla Saat melakakan konversi dari SQL pedir Ko Java / Kotlin Objetivo karena room soda melakukan Cartografía dan mengubah SQL pedir Menjadi Objetivo Yang Xiadi Gunakan.
- pedir tidak perlu diperbaharui saat terjadi perubahan pada Esquema de base de datos.
- Habitación dapat bekerja dengan baik saat digunakan komponen arsitektur lainnya seperti Datos en tiempo real.
Habitación iMetroilik 3 komponen utama yaitu Entidad, Dao, base de datos dan
1. Entidad
Representante de la entidad merupakan mesa Di base de datos. Entity pada room ditandai dengan anotación @Entity
Clase de padha, Campo-campo Pada mesa Acandiva kilcan ole característica yang dideklarasikan pada clase Perfil Jika ingin membuat sebuah tabla usuario maka perlu membuat clase usuario dengan Notas @Entity
Notas de Selain @Entity
tadi ada beberapa nota lain yang dapat digunakan seperti:
@ColumnInfo
– anotación ini berfungsi memberi informasi tambahan pada sitio seperti nama kolom.
@PrimaryKey
– Nota ini menandai bahwa sitio Tsebut Adara La primera llave.
@Ignore
– Habitación secara defecto Acammen cuba característica Pada clase Menjadi base de datos Pilar, característica Carbono solar con luces anotación ini tidak akan diubah menjadi base de datos columna oleh room.
Anotación linnya dapat dilihat disini.
2.DAO
Cruce Objeto de acceso a datos digunakan untuk mendifinisikan método yang berinteraksi dengan base de datos.Jika sebelumnya sudah membuat entidad User
, maka DAO digunakan untuk berinteraksi dengan entidad tersebut seperti menambah, mengambil, memperbaharui, dan menghapus data dari entidad User
.
3. Base de datos
Komponen terakhir yaitu base de datos, base de datos adalah akses utama dalam melakukan koneksi ke base de datos dari sebuah aplikasi. Base de datos dapat dibuat dengan Abstracto Bayberry Varisi clase RoomDatabase
.
Langkah 1: dependencia de Menambah
dependencies
implementation("androidx.room:room-runtime:2.3.0")
kapt("androidx.room:room-compiler:2.3.0")
Untuk memulai menggunakan biblioteca sala tambahkan depende de berikut ke build.gradle(app)
.Dilanjutkan dengan membuat 3 komponen utama tadi.
PENTING: Tambahkan juga kotlin kapt pada plugins di
build.gradle(app)
plugins
id 'kotlin-kapt'
Langkah 2: entidad Membuat
Seperti yang disebutkan sebelumnya, entidad adalah significa dari sebuah mesa. Habitación Akan mengubah semua clase yang dianotasikan menggunakan Entidad de anotación Menjadi mesa.
@Entity
data class User(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
var id: Int = 0,@ColumnInfo(name = "name")
var name: String,
@ColumnInfo(name = "age")
var age: Int = 0,
)
entidad User
Mimiliki 3 sitio Yatu DNI, nombre, edad. @PrimaryKey
Pada IDENTIFICACIÓN berfungsi untuk menjadikan IDENTIFICACIÓN Sebaghe Primera llave Carga (autoGenerate=true)
menandakan bahwa nilai dari IDENTIFICACIÓN Tapones para los oídos Arcandice. @ColumnInfo(name = “id”)
Nombre pada nota ini akan dijadikan nama sitio dari masing-masing característica.
Lanka 3: Membuat DAO
Setra entidad berhasil dibuat kita perlu membuat DAO untuk mendifinisikan Método-método yang digunakan untuk berinteraksi dengan entidad Tesbout.Tokatsu User
Didefinisikan interface
Dan Mong Nakan anotación @Dao
@Dao
interface UserDao
@Insert
fun insert(user: User)@Update
fun update(user: User)
@Delete
fun delete(user: User)
@Query("SELECT * FROM user")
fun getUserList() : List<User>
Langkah 4: base de datos Membuat
Langkah terakhir adalah membuat base de datos, base de datos Dibuttenan Abstracto clase Dan Mevarisi clase RoomDatabase
. clase Nimongnakan anotación @Database
Dimana Dedalamnia Tedapat Un número grande Darisemua entidad yang ada dan versi dari base de datos tersebut, pada kasus ini hanya terdapat satu entidad Yatu User
.
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase(){
abstract fun userDao() : UserDaocompanion object
@Volatile
private var INSTANCE: AppDatabase? = null@JvmStatic
fun getDatabase(context: Context): AppDatabase
if (INSTANCE == null)
synchronized(AppDatabase::class.java)
INSTANCE = Room.databaseBuilder(context.applicationContext,
AppDatabase::class.java, "app_database")
.build()
return INSTANCE as AppDatabase
}
Langkah 5: base de datos de Interaksi dengan
Setelah membuat komponen utama bagaimana cara untuk menambah, mengambil, memperbaharui, dan menghapus data dari base de datos? dengan cara membuat Ejemplo base de datos dari dan memanggil método Dijo Durham.
PENTING: Pastikan saat opesi ke base de datos dilakukan diluar hilo principal untuk itu dapat menggunakan ExecutorService.
insertar:
val appDatabase = AppDatabase.getDatabase(this)
val user = User(name = "doraemon", age = 21)
appDatabase.userDao().insert(user)
renovar:
val appDatabase = AppDatabase.getDatabase(this)
val user = User(id = 1, name = "doraemon", age = 19)
appDatabase.userDao().update(user)
Eliminar:
val appDatabase = AppDatabase.getDatabase(this) appDatabase.userDao().delete(user)
Obtener todos los usuarios:
val appDatabase = AppDatabase.getDatabase(this) appDatabase.userDao().getUserList()
Servicio ejecutivo:
val executorService = Executors.newSingleThreadExecutor()
val appDatabase = AppDatabase.getDatabase(this)
executorService.execute
val user = User(name = "wkkw", age = 11)
appDatabase.userDao().insert(user)
Untuk melihat data dari base de datos yang telah dibuat dapat memanfaatkan Inspector de base de datos de herramientas, android studio versi 4.1 keatas menyediakan Inspector de base de datos de herramientas, Dengan herramienta ini kita dapat melihat datos dari base de datos Sekara En Vivo Danjugamengoksi pedir Lanson base de datos.
Herramientas ini dapat diakses pada menú Ver> Ventanas de herramientas> Inspección de aplicaciones, kemudia pilih equipo Carga proceso Yang Xue es berjalan.