Expanding SQLite Android Database

2

I need to export my SQLite database to a folder on the device on which it will be installed, and every time I open the application, the .db file 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 directory in which I can find the Data Base File .

I would like to get a functional code for exporting from that database, as well as step by step, if possible, the structure of this code for any 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;
}



}
    
asked by anonymous 27.02.2018 / 20:56

1 answer

1

At DATABASE you can put the full path where you want to save your database. Example:

private static final String DATABASE = Environment.getExternalStorageDirectory().getPath() +
            File.separator + "path" +
            File.separator + "to" +
            File.separator + "database.db";

That way your database will be created in /sdcard/path/to/database.db

    
27.02.2018 / 22:37