Skip to content

Make it easy to deserialize data from SQLite database to java bean on Android.

License

Notifications You must be signed in to change notification settings

Yeamy/SQLiteDataSet

Repository files navigation

SQLiteDataSet

English | 中文

This project is a simple tools to deserialize SQLite data to Java Bean on Android.

For java Cursor also see SQLDataSet

implementation 'io.github.yeamy:sqlitedataset:1.2'

1. Annotation

publicclassFruit{@DsColumn("Name") publicStringname; // the column in database is "Name"publicStringfullName; // the column in database can be "fullName" or "full_name"@DsIgnorepublicStringcount; // ignore this fieldpublicFruitTypetype; // the name of the column is the same as the field// regist as custom type (see DsAdapter)publicSkinskin; // this field no DsColumn treat as extra type }

2. DsReader

Generally, using DsReader is an easy and fast way.

SQLiteDatabasedb = ...; // the sourceStringsql = "SELECT ..."; // the sqlFruitapple = DsReader.read(db, sql, Fruit.class); // read oneArrayList<Fruit> list = rDsReader.readArray(stmt, sql, Fruit.class);

3. DsFieldReader

In order to deserialize custom field type, you may define a DsFieldReader.

SQLiteDatabasedb = ...; // the data sourceDsFieldReader<Skin> skinReader = newDsFieldReader<>(){/** * @param cursor query result dataSet * @param columnIndex column index in result dataet * @return field instance */Skinread(Cursorcursor, intcolumnIndex) throwsReflectiveOperationException{returnnewSkin(cursor.getString(columnIndex))} }; // gobalDsReader.register(Skin.class, skinReader); // add custom typeFruitf = reader.read(db, sql, Fruit.class); // read// instanceDsInsReaderreader = DsReader.with(Skin.class, skinReader) .with(Color.class, colorReader); Fruitf = reader.read(db, sql, Fruit.class); // read

4. DsObserver

If you want to do anything after the Bean read, you can implement DsObserver.class, and do it in onDsFinish().

publicclassVegetablesimplementsDsObserver{@DsColumn("Name") publicStringname; ... @OverridepublicvoidonDsFinish(){} }

5. Extra Field

Data come from same row of Cursor can deserialize into an extra field.

source table:

UserNameProvinceCityName...
NikeGuangdongShantou...
...

Usually, deserialize like this:

publicclassUser{@DsColumn("UserName") publicStringname; @DsColumn("Province") publicStringprovince; @DsColumn("CityName") publicStringcity; ... }

to package province and city into same field location, see below:

publicclassUser{@DsColumn("UserName") publicStringname; ... // NOTICE:must without annotion DsColumn, field name cannot as same sa column,// otherwise using DsAdapter insteadpublicCitylocation} publicclassCity{@DsColumn("Province") publicStringprovince; @DsColumn("CityName") publicStringcity; ... }

About

Make it easy to deserialize data from SQLite database to java bean on Android.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages