¿Cómo conectarse a SQLite DB con contraseña con OrmLite?
Copio DB de activos por este código:
public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static final String DATABASE_NAME = "database.db"; private static final String DATABASE_PATH = "/data/data/"+BuildConfig.APPLICATION_ID+"/databases/"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); copyFromAssets(context); } private void copyFromAssets(Context context) { boolean dbexist = checkdatabase(); if (!dbexist) { File dir = new File(DATABASE_PATH); dir.mkdirs(); InputStream myinput = context.getAssets().open(DATABASE_NAME); String outfilename = DATABASE_PATH + DATABASE_NAME; Log.i(DatabaseHelper.class.getName(), "DB Path : " + outfilename); OutputStream myoutput = new FileOutputStream(outfilename); byte[] buffer = new byte[1024]; int length; while ((length = myinput.read(buffer)) > 0) { myoutput.write(buffer, 0, length); } myoutput.flush(); myoutput.close(); myinput.close(); } } }
Para obtener Dao Yo uso esto:
- Manejo de bases de datos con 2 procesos
- Sqlite db update
- Base de datos de diccionarios sin conexión para la aplicación de Android
- Android SQLite - cambiando journal_mode
- Sqlite actualiza una columna basada en la cláusula where android
public Dao<AnyItem, Integer> getDaoAnyItem() throws SQLException { if (daoAnyItem == null) { daoAnyItem = getDao(AnyItem.class); } return daoAnyItem; }
¿Pero cómo conseguir Dao si mi DB será contraseña protegida?
- ¿Por qué onUpgrade () no está siendo invocado en la base de datos Android sqlite?
- Cómo eliminar la base de datos SQLite de Android mediante programación
- Android: utilice la base de datos SQLite en la tarjeta SD (no utilizando el almacén de datos Android interno)
- Comprobación de SQLite de SQL si las tablas contienen filas
- Android SQLite ON CONFLICT UPDATE es posible?
- Excepción de puntero nulo de SQLiteOpenHelper.getWriteableDatabase () en Android
- Android SQLiteConstraintException: código de error 19: error de restricción
- Base de datos de exportación de importación android
Usted debe utilizar SQLCipher con OrmLite, yo sugeriría la biblioteca de ormlite-sqlcipher a usted
OrmLiteSqliteOpenHelper tiene un constructor que toma una contraseña para que cambie la llamada súper a
super(context, DATABASE_NAME, null, DATABASE_VERSION, (File)null, "DB password goes here");
Tomaría la llamada a copyFromAssets (contexto) fuera del constructor de DatabaseHelper y lo llamaría antes de que DatabaseHelper consiga creado es decir la primera cosa cuando la aplicación comienza para arriba
- EditText setError está fuera de lugar en BottomSheetDialog
- Reinicio de la aplicación de Android después de que se haya ejecutado el proceso