How do I save an image in the database in SQLite?

4

How do I save an image in SQLite? I ask to be as specific as possible because I do not 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...");
}
}

Product

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...");
}
}
    
asked by anonymous 11.01.2016 / 04:38

1 answer

7

This is done through a column of type BLOB that allows arbitrary data in binary format. It would add something like this in the structure:

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

There is a question in the SO with examples of usage on Android.

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

    
11.01.2016 / 05:48