There are several popular ORM database libraries out there (SQLDelight, GreenDAO, SugarORM) but we’re going to see top 10 Android database library and nearly every one uses reflection for critical database interactions. Back-end developers get things done, plain and simple.
Their work lays the foundation for an app’s success, and it comes with a lot of blood sweat and tears. Whatever your flavor, NoSQL or SQL these database libraries aim to make that work easier.
List of Top 10 Android Database Libraries
Sugar ORM (Java)
TMH rating : 8.6/10
Insanely easy way to work with Android databases.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/chennaione/sugar”]Sugar ORM – Github[/button]
It was built in contrast to other ORM’s to have:
- A simple, concise, and clean integration process with minimal configuration.
- Automatic table and column naming through reflection.
- Support for migrations between different schema versions.
TMH rating : 7.3/10
Generates Java models from CREATE TABLE statements.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/square/sqldelight”]SQLDelight – Github[/button]
- SQLDelight generates Java models from your SQL
- These models give you a typesafe API to read & write the rows of your tables.
- It helps you to keep your SQL statements together, organized, and easy to access from Java.
Nitrite Database (Java)
TMH rating : 6.1/10
Java embedded nosql document store
NOsql Object (NO2 a.k.a Nitrite) database is an open source nosql embedded document store written in Java. It has MongoDB like API. It supports both in-memory and single file based persistent store powered by MVStore engine of h2 database.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/dizitart/nitrite-database”]Nitrite Database – Github[/button]
It is a server-less embedded database ideal for desktop, mobile or small web applications.
- Embedded key-value/document and object store
- In-memory or single data file
- Very fast and lightweight MongoDB like API
- Full text search capability
- Full Android compatibility
- Observable store
- Both way replication via Nitrite DataGate server
TMH rating : 5.8/10
A library for reading Shared Preferences and Database values within the application.
A library for reading and writing Shared Preferences and Database values of the application within the device.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/Ansh1234/AppDataReader”]AppDataReader – Github[/button]
Advantages of using this library
- No Java Code. Only gradle dependency.
- Read all the Database Values in the device without the need of a browser.
- See all the Shared Preferences at once or file by file.
- Edit the table data by clicking the value of a column in a row.
- Query the database with various types of queries like SELECT, UPDATE, DELETE, INSERT and RAW QUERY. Querying is made simpler by making an interactive UI for various types of queries.
- Copy the value of an individual column of Shared Preference and Database tables to Clipboard.
- With the help of some additional gradle code, this library will pick up the compileSdk Version, targetSdk Version and Build Tools Version from the main project.
TMH rating : 5.6/10
greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases.
It is a light & fast ORM for Android that maps objects to SQLite databases. Being highly optimized for Android, greenDAO offers great performance and consumes minimal memory.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/greenrobot/greenDAO”]greenDAO – Github[/button]
greenDAO’s unique set of features:
- Rock solid: greenDAO has been around since 2011 and is used by countless famous apps
- Super simple: concise and straight-forward API, in V3 with annotations
- Small: The library is <150K and it’s just plain Java jar (no CPU dependent native parts)
- Fast: Probably the fastest ORM for Android, driven by intelligent code generation
- Safe and expressive query API: QueryBuilder uses property constants to avoid typos
- Powerful joins: query across entities and even chain joins for complex relations
- Flexible property types: use custom classes or enums to represent data in your entity
- Encryption: supports SQLCipher encrypted databases.
TMH rating : 5.6/10
Core Data for Android
It is an object graph and persistence framework for Android. It allows for organizing and managing relational data and serializing it to SQLite or custom stores. The data can be accessed or modified using higher level objects representing entities and their relationships. NexusData manages all the objects in the persistence store, tracks changes, and maintains consistency in relationships.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/dkharrat/NexusData”]NexusData – Github[/button]
- Change tracking and management of objects.
- Relationship maintenance by automatically propagating related changes to maintain consistency.
- Support for one-to-one and one-to-many relationships.
- Lazy loading of the object graph to reduce memory overhead.
- Flexible query interface that is independent of the underlying storage engine.
- Model generator that generates java classes from the model.
- Entity inheritence.
- Support for atomic and incremental persistence stores.
- Extensible to different persistence storage. Currently, two storage engines are provided out of the box:
- Built-in support for basic attribute types:
- Short / Integer / Long
- Float / Double
Realm Asset Helper (Java)
TMH rating : 5.1/10
A small library to help with Realm.IO integration in Android apps
Copies a realm database from a the
assets folder. Efficienty handles versioning of read-only realm databases.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/eggheadgames/android-realm-asset-helper”]Realm Asset Helper – Github[/button]
- copy the realm db from the app bundle and return filename ready to be opened
- easy, efficient updating of read-only databases.
TMH rating : 3.9/10
A helper library to help using Room with existing pre-populated database.
An Android helper class to manage database creation and version management using an application’s raw asset files.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/humazed/RoomAsset”]RoomAsset – Github[/button]
This library provides developers with a simple way to ship their Android app with an existing SQLite database (which may be pre-populated with data) and to manage its initial creation and any upgrades required with subsequent version releases.
It is implemented as an extension to
Room, providing an easy way to use
Room with an existing SQLite database.
TMH rating : 2.8/10
A quick and easy database manager plugin library for your DBFlow databases.
A quick and easy database manager and viewer plugin library for your DBFlow databases to view, insert, delete, update the tables directly inside your app.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/wajahatkarim3/DBFlowManager”]DBFlowManager – Github[/button]
- View all your tables data in tabular format
- Insert rows to your tables
- Update rows
- Delete rows
- Delete tables
- Drop tables
- Write your own custom queries and view the results. (Create statements, joins, etc)
- Change data in the tables and see how you application responds.
TMH rating : 1.6/10
SQLBrite helper class to manage database creation and version management using an application’s raw asset files.
[button color=”blue” size=”” type=”3d” target=”_blank” link=”https://github.com/wajahatkarim3/DBFlowManager”]SQLBrite Migrations – Github[/button]
Note: Current all migrations must be placed on
migrations folder inside