Usare Nitrite in Android

Mattepuffo's logo
Usare Nitrite in Android

Usare Nitrite in Android

In questo articolo abbiamo visto come usare Nitrite in un'appllicazione desktop in Java.

Oggi vediamo come usare il database in Android.

Useremo sempre Java, anche se in realtà la app è scritta in Kotlin; esiste una estensione per questo linguaggio, ma per semplicità ho preferito usare Java.

Prima di tutto aggiungete la dipende in gradle:

dependencies {
    ...................
    implementation 'org.dizitart:nitrite:3.0.0'
}

Questa una classe di esempio:

import android.content.Context;
import android.util.Log;
import org.dizitart.no2.Cursor;
import org.dizitart.no2.Document;
import org.dizitart.no2.Nitrite;
import org.dizitart.no2.NitriteCollection;
import java.util.ArrayList;
import java.util.Date;

public class DbNotes {

    private Nitrite db;
    private NitriteCollection collection;

    public DbNotes(Context ctx) {
        db = Nitrite.builder()
                .compressed()
                .filePath(ctx.getFilesDir().getPath() + "/notes.db")
                .openOrCreate("matte", "9211");
        createCollection();
    }

    public void createCollection() {
        collection = db.getCollection("test");

        Document doc = Document.createDocument("firstName", "John")
                .put("lastName", "Doe")
                .put("birthDay", new Date())
                .put("data", new byte[]{1, 2, 3})
                .put("fruits", new ArrayList() {{
                    add("apple");
                    add("orange");
                    add("banana");
                }})
                .put("note", "a quick brown fox jump over the lazy dog");

        collection.insert(doc);
    }

    public void queryAll() {
        Cursor cursor = collection.find();

        for (Document document : cursor) {
            Log.i(document.getId().toString(), document.get("firstName").toString());
        }
    }
}

Al costruttore passiamo il Context, in modo da salvare il db nel path della app sul device.

Volendo potete anche scrivere sullo storage esterno; vostra scelta.

Poi creiamo una collezione di esempio, ed infine iteriamo sui risultati.

Per richiamare questo codice (ricordando che la mia app è scritta in Kotlin):

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val db = DbNotes(this)
        db.queryAll()
    }
}

Enjoy!


Condividi

Commentami!