Implementación de SQLite en Kotlin y Anko
He creado mi database de aplicaciones como a continuación. Quiero insert el logging ahora y recuperarlo, ya que este enlace dice https://antonioleiva.com/databases-anko–kotlin/ para usar database.use
import android.database.sqlite.SQLiteDatabase import org.jetbrains.anko.db.* class AppDbHelpler : ManagedSQLiteOpenHelper(AppApplication.instance(), AppDbHelpler.DB_NAME, null, AppDbHelpler.DB_VERSION) { companion object { val DB_NAME = "person.db" val DB_VERSION = 1 val instance by lazy { AppDbHelpler() } } override fun onCreate(db: SQLiteDatabase?) { db!!.createTable(PersonTable.Name, true, Pair(PersonTable.ID, INTEGER + PRIMARY_KEY + AUTOINCREMENT), Pair(PersonTable.PersonName, TEXT), Pair(PersonTable.Domain, TEXT), Pair(PersonTable.MobileNumber, REAL)) } override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { db!!.dropTable(PersonTable.Name, true) onCreate(db) } } // Access property for Context val Context.database: AppDbHelpler get() = AppDbHelpler()
MainActivity.kt
- Error de la database de la sala Android: parámetro no utilizado: días en la function @Query
- Por qué las entidades Room no funcionan con properties inmutables en Android
- ¿Cómo puedo unirme a tres entidades en GreenDao?
- Kotlin Closable y SQLiteDatabase en Android
- Imposible get datos de la database sqlite
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) insertPerson() } fun insertPerson() { database.use { } }
¿Alguien puede indicarme qué línea es para val Context.database: AppDbHelpler get() = AppDbHelpler()
. Que hace ?
- IlegalStateException donde se lanzó, al intentar recuperar los valores de la instancia de RoomDatabase
- Agregar / Consultar / Analizar SQLite usando Anko
- Causado por: android.database.sqlite.SQLiteException: cerca de "org": error de syntax (código 1):, al comstackr:
- Cómo anotar una columna como NOT NULL utilizando Android Room Persistence Library
- Error al hacer que Enum sea la key principal en la biblioteca de la database de la sala
- Seleccionar datos de dos tablas en Kotlin Anko
- Tipo de interferencia fallida. No coinciden los types esperados: requiere un par de cadenas encontrado <String, String> en Kotlin y Anko
- No se puede acceder a BaseColumns proporciona la propiedad _ID en Kotlin
val Context.database
es un uso de extensiones en Kotlin. Permiten que se acceda a la database
de database
valores cuando se encuentre en una class (u otra function) utilizando Context
.
El método get()
continuación define la propiedad de esa variable. Es equivalente a un método getDatabase()
en Java, donde devolverá el AppDbHelper como se muestra. Tenerlo de esta manera le permite recuperar el ayudante usando la syntax de la variable. Como el getter es una function, creará un nuevo helper cada vez, en lugar de cómo se comportará una variable real con una sola asignación. También tenga en count que dado que este es un val
, no se proporciona un método de set.
El código es equivalente a
public static AppDbHelper getDatabase(Context context) { return new AppDbHelper(); }
en Java
Este es un buen blog con un ejemplo completo de sqlite en kotlin.
http://easybook4u.com/index.php/2017/08/09/how-to-use-sqlite-in-android-kotlin/
- Escriba desajuste. Mapa obligatorio <String, Any> Found Map <String, Any?>
- ¿Accediendo a la function de extensión estática de otra class en Kotlin?