1
I’m making an application to save the image in sqlite. But you are acknowledging the following error in my dao class: incompatible types byte cannnot be converted to byte.
My Classes:
import java.io.Serializable;
public class Produto implements Serializable{
private int id;
private String descricao;
private double precoDeCusto;
private double percDeLucro;
private double precoDeVenda;
private String disponibilidade;
private byte imagem;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public double getPrecoDeCusto() {
return precoDeCusto;
}
public void setPrecoDeCusto(double precoDeCusto) {
this.precoDeCusto = precoDeCusto;
}
public double getPercDeLucro() {
return percDeLucro;
}
public void setPercDeLucro(double percDeLucro) {
this.percDeLucro = percDeLucro;
}
public double getPrecoDeVenda() {
return precoDeVenda;
}
public void setPrecoDeVenda(double precoDeVenda) {
this.precoDeVenda = precoDeVenda;
}
public String getDisponibilidade() {
return disponibilidade;
}
public void setDisponibilidade(String disponibilidade) {
this.disponibilidade = disponibilidade;
}
public byte getImagem() {
return imagem;
}
public void setImagem(byte imagem) {
this.imagem = imagem;
}
}
My Class dao
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());
v.put("imagem", produto.getImagem());
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());
cv.put("imagem", produto.getImagem());
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));
prod.setImagem(c.getBlob(5));
//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...");
}
}
The error occurs in this line **Prod.setImage(c.getBlob(5));
My bank structure:
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,");
sb.append(" [imagem] BLOB);");
Login.db.execSQL(sb.toString());
System.out.println("Tabelas criadas...");
}
}
You need to convert the image into an array of bytes before saving to the database
– Jeiferson