How do I save an image to the database in Sqlite?

Asked

Viewed 3,875 times

5

How do I save an image to Sqlite? I ask you to be as specific as possible because I don’t have much experience. In case I want to include a table row to save the image.

 import br.gestaoBd.Login;



 public class EstruturaBanco {

 public static void criarTabelas() {
    System.out.println("Criando as tabelas...");
    StringBuilder sb = new StringBuilder();
    sb.append(" CREATE TABLE IF NOT EXISTS [produtos] (");
    sb.append(" [id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,");
    sb.append(" [descricao] VARCHAR2(50) NOT NULL,");
    sb.append(" [precoDeCusto] DOUBLE NOT NULL,");
    sb.append(" [percDeLucro] DOUBLE NOT NULL,");
    sb.append(" [precoDeVenda] DOUBLE NOT NULL);");
    Login.db.execSQL(sb.toString()); 

    System.out.println("Tabelas criadas...");
}
}

Productive

import android.content.ContentValues;
import android.database.Cursor;
import br.gestaoBd.Beans.Produto;
import br.gestaoBd.Login;
import java.util.ArrayList;

public class ProdutoDao {

public void inserirProduto(Produto produto) {
    System.out.println("Inserindo produto...");
    ContentValues v = new ContentValues();
    v.put("descricao", produto.getDescricao());
    v.put("precoDeCusto", produto.getPrecoDeCusto());
    v.put("percDeLucro", produto.getPercDeLucro());
    v.put("precoDeVenda", produto.getPrecoDeVenda());

    Login.db.insert("produtos", null, v);
    //ProjetoBd.db.close();
    System.out.println("Inseriu...");
}

public static void alterar(Produto produto) {
    ContentValues cv = new ContentValues();
    cv.put("descricao", produto.getDescricao());
    cv.put("precoDeCusto", produto.getPrecoDeCusto());
    cv.put("percDeLucro", produto.getPercDeLucro());
    cv.put("precoDeVenda", produto.getPrecoDeVenda());

    String idTransformado = String.valueOf(produto.getId());
    String[] valoresDasVariaveisWhere = new String[1];
    valoresDasVariaveisWhere[0] = idTransformado;
    Login.db.update(
            "produtos", cv, "id = ?", valoresDasVariaveisWhere);
    System.out.println("Alterou...");
}

public ArrayList<Produto> getListagem(String parametro) {
    System.out.println("Listando produto...");
    String sql = "SELECT * FROM Produtos ORDER BY descricao ASC " + parametro;
    ArrayList<Produto> listagem = new ArrayList<Produto>();
    try {
        Cursor c = Login.db.rawQuery(sql, null);
        while (c.moveToNext()) {
            Produto prod = new Produto();
            prod.setId(c.getInt(0));
            prod.setDescricao(c.getString(1));
            prod.setPrecoDeCusto(c.getDouble(2));
            prod.setPercDeLucro(c.getDouble(3));
            prod.setPrecoDeVenda(c.getDouble(4));

            //System.out.println("Descricao=" + prod.getDescricao());
            listagem.add(prod);
        }
    } catch (Exception e) {
        System.out.println("Erro");
        e.printStackTrace();
    }
    System.out.println("Listou..." + listagem.size());
    return listagem;
}

public void excluir(Produto produto) {
    System.out.println("Excluindo produto...");
    Login.db.delete("produtos", "id = ?", new String[]{String.valueOf(produto.getId())});
    System.out.println("Excluiu...");
}
}

1 answer

7


That’s effect through a column of guy BLOB which allows arbitrary data in binary format. I would add something like this in the structure:

sb.append(" [imagem] BLOB);");

There’s a question in the OS with examples of use on Android.

I was as specific as I could since the question is not so specific.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.