I have a requirement to create a new database for each user in app, and to have multiple databases that change on user switching. Does any of the existing ORM's like GreenDAO, Storio, DbFlow, Realm or similar orm/libraries for Android support this or is it better to do this on foot, define each table and fields by my self, and use Sqlitedbhelper to generate each database from scratch?
Create new databases on runtime in app
532 Views Asked by ddog At
2
There are 2 best solutions below
1
Jofre Mateu
On
I've used greenDAO several times and this looks easy with it. You can take a look here.
Basically, you can specify by name what db do you want to use when you init the DaoMaster like this:
DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "your-db-name", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
// After the initialization, you can get your DAO's and start working
SomeDao someDao = daoSession.getSomeDao();
I don't know if you are familiar with greenDAO, but all the needed classes are automatically generated using a generator module. You could find here a good tutorial explaining how to use it with Android Studio.
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in ANDROID-SQLITE
- Adapter Subscribing to Multiple Observables
- Passing parameter in Sql IN statement
- cyclic dependency while fetching employees and settings into department
- Android Data persistence - Insert Data
- SQLite Query builder for creating tables in a database
- cursorloader selection query using like
- Android SQLite issue: 'Table [...] has no column named' error
- Create table sqlite syntax error
- SQLite app won't run at all. Force close message appears
- sqlite db exception : Could not open database
- Querying relational data from ContentProvider
- Android upgrading sql database using android-sqlite-asset-helper
- can anyone tell me how to store geocoder address in android database using android studio?
- How to randomly populate a fragment with database data
- How to get Max id in table column database?when id store as string?
Related Questions in REALM
- realm db, get parent link of object
- Pager with RecyclerViews containing realmObjects keeps crashing with IllegalState
- Remove property in Realm object
- Android Realm - RealmBaseAdapter memory issue
- Realm.io API mapping parent object automatically
- RealmSwift RLMException
- New RealmModel migration issue with Realm
- Fetching with a certain number and some offset with Realm(https://realm.io/)
- Xcode linking error with realm
- Realm: In a one to many Relation ship, how to get the records based on a Category in this example
- Lots of checkboxes to add to my RealmObject
- Realm error: Invalid Value, expecting int and receiving: 0
- Realm Query to fetch multiple rows based on date Android
- Realm.io Removing the realm file
- How to migrate Realm in Android
Related Questions in GREENDAO
- Green Dao bi-directional One To One mapping
- GreenDao & Triggers strange behaviour
- How to edit the existing SQL table column values using GreenDao?
- Android SQLite can a tables name be 'TABLE'
- Android - GreenDao create/use entity and Dao class for existing sqlite database. Use greenDao with existing db
- Need a join query in greendao
- Volley library and AsyncTask
- Poor performance of greenDAO @toMany relation
- Greendao 3 generate contentprovider
- GreenDAO (Android) - Persist object in multiple tables using one insert
- Could not find method greendao() for arguments on project
- Android getActivity, getContext, getView in fragment is undefined
- How to search on multiple columns at same time using GreenDao?
- accessing db using greendao across application
- Is it correct way to open and close GreenDao 3 connection?
Related Questions in STORIO
- Using StorIO with AndroidX and Jetifier
- Save new object to table (StorIO)
- Create new databases on runtime in app
- What are the various column types you can have in StorIO?
- Best method to get android contact infos (addressbook) with StorIO
- How to ensure that a column won't get overriden by a null value?
- Best approach when working with existing SQLite database in StorIO
- Resolver for inner-nested object in storio
- StorIO observeChangesInTable, can i get updated rows/items with it?
- Keeping a subscription open in a singletion
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As StorIO developer, I will answer about support of multiple databases in StorIO:
It's possible, StorIO does not limit you in the number of databases you work with, just create as much
StorIOSQLiteinstances as you need and pass uniqueSQLiteOpenHelperthat'll work with different DBs to each instance ofStorIOSQLite. The only recommendation from our team — use one instance ofStorIOSQLiteper DB.According to the documentation, GreenDAO and DbFlow should be able to work with multiple databases.
Looks like Realm won't allow you to use multiple databases since it's a singleton in their SDK:
Realm.getInstance(context). Edit: Realm can handle multiple DBs (see comments to the answer).