Necesito agregar valores iniciales a la base de datos SQLite, una vez que la aplicación se inicia por primera vez. ¿Cómo debería hacerlo?¿Cómo agregar datos iniciales a la base de datos SQLite?
Respuesta
En el archivo de clase DBAdapter.java puede hacerlo.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_1);
db.execSQL(CREATE_TABLE_2);
db.execSQL(CREATE_TABLE_3);
db.execSQL("insert into " + DATABASE_TABLE3 + "(" + KEY_ROWID + ","
+ KEY_DEF + ") values(1,'')");
}
Como este tipo.
Los requisitos únicos o de primera carga como este son comunes.
1) Establezca una variable de marcador llamada FIRSTLOAD y establézcala en True. Asegúrese de guardar esta variable en el almacenamiento aislado en el dispositivo para volver a leer cada vez que se inicia la aplicación. 2) Cree un método que verifique el valor de FIRSTLOAD y solo se ejecute si FIRSTLOAD es verdadero. Coloque aquí su código que 'agrega [s] valores iniciales a la base de datos SQLite'. A continuación, establezca la variable FIRSTLOAD en falso. ¡De esta manera solo ejecutará el código una vez!
Boolean FIRSTLOAD= new Boolean("true");
void SetInitialValues()
{
if(!FIRSTLOAD)
return;
// insert your code to run only when application is started first time here
FIRSTLOAD = False;
}
Usted puede crear su propia base de datos SQLite, poner en la carpeta activos y acceder a ella como se muestra en la respuesta de este enlace: adding your own SQLite database to an android application
Debe utilizar SQLiteOpenHelper para este
private static class OpenHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "rss.sqlite";
private static final int DATABASE_VERSION = 1;
OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE RSS (TITLE TEXT, LINK TEXT, DESCR TEXT, PUBDATE DATE, GUID TEXT, READ TEXT, TYPE TEXT)");
db.execSQL("CREATE TABLE PAGE (LINK TEXT, CONTENT TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
Y úsela en el código
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
Usted shou Verifique el número de objetos dentro de su base de datos cada vez que abra la base de datos por primera vez en su aplicación. No olvide que el usuario puede liberar todos los datos.
//Open DataBase
MyDb.Open();
//Get All List
MyCursor = MyDb.getAllNames(); //You should have a function to get all the table data
//First Time we open Database, add default Values
if (MyCursor.getCount() < 1)
{
AddDefaultValuesToDataBase();
}
Desde aquí puede seguir obteniendo los valores nuevamente.
Espero que ayude, BR, Adrian.
En caso de que esté utilizando la biblioteca org.droidparts OR-Mapper para acceder a su base de datos, puede hacerlo así.
En su implementación de
public class CategoryEntityMgr extends EntityManager<Category> {
public CategoryEntityMgr(Context ctx) {
super(Category.class, ctx);
}
// NEW --> this one must be used in onCreateTables or you will receive a database locked exception
private CategoryEntityMgr(Context ctx, SQLiteDatabase db) {
super(Category.class, ctx, db);
}
}
En su implementación de AbstractDbOpenHelper:
protected void onCreateTables(SQLiteDatabase db) {
// create your tables as usual
createTables(db, Booking.class, Category.class);
// Use a new instance of your entity manager
// but use the 2nd constructor to provide the db connection
CategoryEntityMgr mgr = new CategoryEntityMgr(ctx, db);
// add the new table row/entity you an to have
Category c = new Category();
c.name = "the value for this column";
mgr.createOrUpdate(c);
}
Sería mejor si esta fuera una respuesta genérica, no vinculada a una implementación de biblioteca específica. – Levon
- 1. Agregar archivo HTML a la base de datos SQLite
- 2. ¿Cómo cargar datos iniciales (o datos iniciales) utilizando Java JPA?
- 3. cómo reducir la base de datos sqlite?
- 4. ¿Cómo podemos descargar la base de datos sqlite desde url y agregarla a nuestra aplicación como base de datos sqlite?
- 5. Cómo conectarse a la base de datos sqlite con contraseña
- 6. ¿Cómo agregar dos nuevas columnas a la base de datos SQLite de Android?
- 7. Seguridad de la base de datos Sqlite
- 8. ¿Puedo encriptar la base de datos SQLite?
- 9. SQLite agregar la columna, mantener los datos
- 10. Cómo proteger la base de datos SQLite de la corrupción
- 11. cómo agregar súper privilegios a la base de datos mysql?
- 12. ¿Cómo conecto CakePHP a una base de datos SQLite?
- 13. Cómo convertir una base de datos postgres a sqlite
- 14. Android - Acceso a la base de datos en línea SQlite
- 15. Migrar la base de datos SQLite a Microsoft SQL Server
- 16. ¿Cómo convertir una base de datos JET a SQLite?
- 17. SQLite: ¿la forma más rápida de leer datos de la base de datos SQLite?
- 18. Actualización de la base de datos sqlite cuando la base de datos del servidor se actualiza
- 19. ¿cómo consulto la base de datos SQLite con dos condiciones?
- 20. Base de datos SQLite en Javascript localmente
- 21. ¿Cómo usar la base de datos SQLite desde MS Access?
- 22. Error al separar la base de datos SQLite - la base de datos está bloqueada
- 23. Android - ¿Existe una base de datos SQLite?
- 24. cómo agregar datos a la base de datos desde la consola de rieles
- 25. Cómo almacenar imágenes en la base de datos SQLite
- 26. SQLite: base de datos de solo lectura
- 27. Guardando ArrayList en la base de datos SQLite en Android
- 28. Cómo almacenar objetos en la base de datos sqlite?
- 29. ¿Cómo extraigo la base de datos sqlite del dispositivo Android?
- 30. cómo soltar la base de datos en sqlite?
¿Es que trabajan sólo para la primera ejecución de la aplicación o cada vez que se está ejecutando? –
@Setayeshi, de developer.android.com "Se invoca cuando se crea la base de datos por primera vez. Aquí es donde debería ocurrir la creación de tablas y la población inicial de las tablas". –