1
I need to export my database Sqlite to a folder on the device on which it will be installed, and every time I open the application, the file ". bd" be updated so that at the end of the month I can convert it to Excel. I just need to find this file or create it because my application is not creating a file folder or a directory in which I can find the Data Base File hers.
I would like to obtain a functional code for export from that bank, as well as step by step, if possible, of the structure of this code for possible errors.
Here is my database:
public class ProdutosBD extends SQLiteOpenHelper{
private static final String DATABASE ="bdprodutos";
private static final int VERSION = 1;
public ProdutosBD (Context context){
super(context, DATABASE,null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String produto = "CREATE TABLE produtos(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, matricula INTEGER, supervisao TEXT NOT NULL, material TEXT NOT NULL, quantidade INTEGER);";
db.execSQL(produto);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String produto = "DROP TABLE IF EXISTS produtos";
db.execSQL(produto);
}
// aqui salva
public void salvarProduto(Produtos produto){
ContentValues values = new ContentValues();
values.put("matricula",produto.getMatricula());
values.put("supervisao",produto.getSupervisao());
values.put("material",produto.getMaterial());
values.put("quantidade",produto.getQuantidade());
getWritableDatabase().insert("produtos",null,values);
}
// metodo alterar concluído ? :D
public void alterarProduto(Produtos produto){
ContentValues values = new ContentValues();
values.put("matricula",produto.getMatricula());
values.put("supervisao",produto.getSupervisao());
values.put("material",produto.getMaterial());
values.put("quantidade",produto.getQuantidade());
String [] args = {produto.getId().toString()};
getWritableDatabase().update("produtos",values,"id=?",args);
}
public void deletarProduto(Produtos produto){
String [] args = {produto.getId().toString()};
getWritableDatabase().delete("produtos","id=?",args);
}
// lista - mostrar
public ArrayList<Produtos> getLista(){
String [] columns ={"id","matricula","supervisao","material","quantidade"};
Cursor cursor = getWritableDatabase().query("produtos",columns,null,null,null,null,null,null);
ArrayList<Produtos> produtos = new ArrayList<Produtos>();
while (cursor.moveToNext()){
Produtos produto = new Produtos();
produto.setId(cursor.getLong(0));
produto.setMatricula(cursor.getInt(1));
produto.setSupervisao(cursor.getString(2));
produto.setMaterial(cursor.getString(3));
produto.setQuantidade(cursor.getInt(4));
produtos.add(produto);
}
return produtos;
}
}
In fact
DATABASE
you can put the complete path where you want to save your database, ex:DATABASE = Environment.getExternalStorageDirectory().getPath().concat("/database.db")
, but it is necessary to have the permissionWRITE_EXTERNAL_STORAGE
– Valdeir Psr
The way you are doing, Android will save the database in an internal folder and only devices with root, will be able to access.
– Valdeir Psr
OK Valdeir, thank you very much. I will try and return :D
– Diego Mota Christ
Okay, another question friend: how will I know in which folder the "/bdprodutos.db" was saved?
– Diego Mota Christ
Environment.getExternalStorageDirectory().getPath()
returns the memory card path. In the above example, it saves at the root of the card. Or you can use Environment.html.getExternalStoragePublicDirectory– Valdeir Psr
Is there a specific place to put the apk file at the time of installation? Because in relation to the code I am doing this way DATABASE = Environment.getExternalStorageDirectory(). getPath(). Concat("Card Android data/bdprodutos.db") and is not working.
– Diego Mota Christ