Confuso respecto a SQLiteOpenHelper y crear varias tablas
Siento que las pautas para desarrolladores de Android acerca del almacenamiento de datos en SQLite realmente carecen. Estoy confundido en cuanto a lo que la pauta general es cuando se trata de múltiples tablas.
Actualmente tengo dos gerentes que exponen (CRUD) dos conjuntos diferentes de entidades a la interfaz de usuario.
- ¿Es realmente necesario crear tablas SQLite cada vez que se inicia la aplicación?
- SQLiteOpenHelper - crear base de datos en tarjeta SD
- Android obtener la imagen de disco de base de datos es malformado (código 11) error
- No se puede bajar la base de datos de la versión `n` a` n-1` en Samsung
- El objeto de conexión de SQLite se filtró - Android
Hago yo
Cree una clase privada SQLiteOpenHelper dentro de cada Manager. Cada ayudante tendrá su propia creatividad para su propia tabla?
o
Crear una sola clase pública SQLiteOpenHelper que crea ambos TABLE?
No veo ninguna ventaja clara al usar el uno sobre el otro pero veo que ambos están siendo utilizados. ¿Qué dice Android sobre esto?
- Robolectric: ejecutar múltiples pruebas falla
- Error al leer la fila 0, columna 0 de una CursorWindow que tiene 0 filas, 64 columnas
- Android SQLiteException: Error al cambiar la configuración regional de db a 'en_US'
- Error al insertar android.database.sqlite.sqliteconstraintexception error código 19 restricción fallida
- Ejemplo de Android SQLite
- Cómo funciona SQLiteOpenHelper Context
- SQLiteOpenHelper "onCreate" no se llama? (El DB no existe)
- cómo crear base de datos una sola vez, a continuación, leer y escribir varias veces desde él, SQLite, OpenHelper, Android
Utilice los siguientes códigos para crear las tablas múltiples (he creado dos tablas ahora). He hecho el código para crear e insertar. además..
import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class MyDB { public static final String KEY_ROWID = "_id"; public static final String KEY_FIRSTNAME = "ID"; public static final String KEY_LASTNAME = "CS"; public static final String KEY_DESIGNATION = "CN"; public static final String KEY_DN = "DN"; private static final String TAG = "MyDB"; private static final String DATABASE_NAME = "test.db"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE_ValidateUser_DriverInfo = "create table tabletest1 (_id integer primary key autoincrement, " + "ID text not null, CS text not null,CN text not null,DN text not null);"; private static final String DATABASE_CREATE_ValidateUser_TripInfo = "create table tabletest2 (_id integer primary key autoincrement, " + "TI text not null, PU text not null,LN text not null,FN text not null,Origin varchar not null,De text not null);"; private Context context; private DatabaseHelper DBHelper; private SQLiteDatabase db; public MyDB(Context ctx) { this.context = ctx; DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE_ValidateUser_DriverInfo); db.execSQL(DATABASE_CREATE_ValidateUser_TripInfo); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS Employee"); onCreate(db); } } public MyDB open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } //---closes the database--- public void close() { DBHelper.close(); } public long insertTitle(ContentValues initialValues,String TableName) { return db.insert(TableName, null, initialValues); } }
Utilice el código siguiente para insertar los datos de la actividad requerida.
MyDB mmdb=new MyDB(getBaseContext()); mmdb.open(); initialValues = new ContentValues(); initialValues.put("ID", ID); initialValues.put("CS", CS); initialValues.put("CN", CN); initialValues.put("DN", DN); mmdb.insertTitle(initialValues,"tabletest1"); mmdb.close();
- Iniciar la actividad de servicio en la pantalla de bloqueo activa la pantalla pero no muestra la actividad en sí
- Adb no reconoce el dispositivo Android 4.0.4