Cómo almacenar y recuperar imágenes en la base de datos SQLite en Android

  1. Debe configurar la base de datos en DatabaseHelper.java como: –

clase pública DatabaseHelper extiende SQLiteOpenHelper {
// Versión de base de datos
privado estático final int DATABASE_VERSION = 1;

// Nombre de la base de datos
Private static final String DATABASE_NAME = “nombre_base_datos”;

// Nombres de tabla
privada estática final String DB_TABLE = “table_image”;

// nombres de columna
Private static final String KEY_NAME = “nombre_imagen”;
Cadena estática privada final KEY_IMAGE = “image_data”;

// Declaración de creación de tabla
Cadena privada estática final CREATE_TABLE_IMAGE = “CREATE TABLE” + DB_TABLE + “(” +
KEY_NAME + “TEXT”, +
KEY_IMAGE + “BLOB);”;

public DatabaseHelper (contexto de contexto) {
super (contexto, DATABASE_NAME, nulo, DATABASE_VERSION);
}

@Anular
public void onCreate (SQLiteDatabase db) {

// crear tabla
db.execSQL (CREATE_TABLE_IMAGE);
}

@Anular
public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
// en la actualización, descartar tablas antiguas
db.execSQL (“DROP TABLE IF EXISTS” + DB_TABLE);

// crear nueva tabla
onCreate (db);
}
}

2. Inserte los datos en la base de datos

public void addEntry (nombre de cadena, imagen de byte []) arroja SQLiteException {
Base de datos SQLiteDatabase = this.getWritableDatabase () ;.
ContentValues ​​cv = new ContentValues ​​();
cv.put (KEY_NAME, nombre);
cv.put (KEY_IMAGE, imagen);
database.insert (DB_TABLE, null, cv);
}

3. Recupere los datos como-

byte [] imagen = cursor.getBlob (1);

Para leer más, lea esto: Cómo insertar datos en una base de datos SQLite en Android.

Por supuesto que puedes, pero es un proceso un poco complicado.

Básicamente, necesita convertir el archivo de imagen (BitMap) en secuencias de matriz de bytes y luego almacenarlo en una columna SQLite cuyo tipo de datos es BLOB (SQLite lo admite).

Para leerlo y reproducir la imagen del almacenamiento BLOB, debe invertir el proceso, es decir, leer las secuencias de bytes del almacenamiento BLOB de SQLite y convertirlo en un BitMap.

Si desea detalles de implementación, busque en stack-overflow. Hay suficientes publicaciones sobre el tema del tema. Espero que esto ayude.

Lo primero es que, convierta imágenes a base 64 y luego almacene en la base de datos y durante la recuperación convierta base64 a mapa de bits y muestre.

Veo que la entrada de la base de datos ya se muestra en las respuestas, así que use ese código y realice el único cambio como guardar imagen en base64.

No almacene la imagen en sqlite, ¡no es una buena práctica!

En lugar de eso, almacene la ruta URL / ruta de almacenamiento de la imagen solo en la base de datos. Almacene y recupere imágenes de ese camino. Almacene la imagen en forma cifrada o extensión cámbiela.