En este post se vera como realizar una conexion sqlite para poder usarlas en varios servicios.
Antes de comenzar debemos importar los siguientes modulos:
ionic cordova plugin add uk.co.workingedge.cordova.plugin.sqliteporter npm install @ionic-native/sqlite-porter ionic cordova plugin add cordova-sqlite-storage npm install @ionic-native/sqlite
Entramos a nuestro app.module.ts e importamos los siguientes plugins
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy, NavParams } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { SQLitePorter } from '@ionic-native/sqlite-porter/ngx';
import { SQLite } from '@ionic-native/sqlite/ngx';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [ HttpClientModule,BrowserModule, IonicModule.forRoot(), AppRoutingModule,
],
providers: [
StatusBar,
SplashScreen,
SQLite,
SQLitePorter,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
],
bootstrap: [AppComponent]
})
export class AppModule {}
Creamos un servicio con el nombre conexión usando el siguiente comando
ionic g service services/conexion/conexion
Creamos un archivo manualmente dentro de la carpeta assets llamado seed.sql
Abrimos el archivo seed.sql y dentro de este crearemos nuestras tablas y podremos crear algunos registros tambien.
Entramos a nuestro servicio conexión e importamos los siguientes plugins
En el constructor declaramos lo siguiente:
Encima del constructor declaramos las siguientes variables:
Comenzamos a crear las funciones:
La funcion inicializar() se encarga de cargar la semilla y asignarle un nombe a la BD que en este caso seria el archivo .sql que creamos al principio, se complementa con la funcion seedDatabase() la cual es la encargada de llamar al archivo seed.sql.
La funcion getDatabaseState() se encarga de conocer el estado de la bd en caso de estar lista para su uso.
La funcion sqliteObject retorna el objeto database.
Para hacer uso de esto se llama en otro servicio de la siguiente manera:
Se llama al servicio
import { ConexionService } from '../conexion/conexion.service';
Y luego en el constructor se asigna una variable
constructor(
private conexion: ConexionService) { }
Debajo del constructor se crea la siguiente función:
getdatabase() {
return this.conexion.sqliteObject();
}
Estas funciones llaman a las otras funciones que están en el servicio conexión.
Para hacer uso de estas funciones para realizar consultas se llama a la funcion getdatabase() de esta manera:
return this.getdatabase().executeSql('SELECT * FROM usuarios', []).then(data => {
let array: Usuarios[] = [];
if (data.rows.length > 0){
for (var i = 0; i< data.rows.length; i++){
array.push({
idusuario.rows.item(i).idusuario,
nombre.rows.item(i).nombre,
});
}
}
this.usuarios.next(array);
});
}

Comentarios
Publicar un comentario
Escribenos