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
533 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
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in ANDROID-SQLITE
- Explicit intent not working with forget password button also unable to read data from DB during sign in
- null object reference with intent,parcelable and getting data sqlite. Everythink is coded in onCreate in the different layout
- how to insert data from edit text to sqlite db in android application
- SQlite for Android not working with json_group_array/json_object
- SQLite query not returning expected results despite correct hashing and comparison in Android application
- How to delete SQLite database table in android java
- The table in the database (SQLite) is not created in the oncreate method
- andriod studio. Using sqlite to save images and display them on the screen
- Android SQL database backup file format to cloud
- Creating database file in application data
- Can we export Firestore cached data from SQLite, and does it will be same like Firestore data bundle?
- Android SQLite data availability in multiusers-aware applications
- Android Studio rawQuery with LIKE
- Sqlite (Android) : How to use object as attribute in another object?
- My app on Android studio crash after I create the first data
Related Questions in REALM
- Realm Swift - collection changes listener in SwiftUI
- Making Array of Objects from mySQL database
- Replace Realm DB in the an existing Android app with Room DB
- Filtering query with BEGINSWITH of Realm database in Kotlin
- How to get an instances of saved realm objects in my SwiftUI DeviceActivityMonitorExtension point in the background?
- Polymorphism on Realm (React Native SDK)
- How to enable admin user of master realm
- How to create multiple realm models in flutter and mongodb realm
- Realm v12.6.2 with React Native v0.73.5, getting link error in iOS build compile
- Realm Flexible device sync while client is offline. (React native SDK)
- Unable to initialize my MongoDB app since syncrootdirectory is null
- Realm : Generic parameter 'Element' could not be inferred
- Adding Realm Kotlin as a dependency in an Android Library
- Do I need to perform a migration block when updating @PersistableEnum?
- Is there a size limit for database file in Realm Swift?
Related Questions in GREENDAO
- GreenDao how to update table by other column (not the primary key id)?
- Observable.fromCallable() method inside not getting called
- Return "blank" entity if entity does not exist using QueryBuilder
- android greendao plugin config confusing
- Is green Dao supported by kotlin?
- greendao - android.database.CursorWindowAllocationException: Could not allocate CursorWindow <DBName> of size 104857600 due to error -12
- how to change AlertDialog to intent to move to another activity
- How to use greenorg.greenrobot:greendao-gradle-plugin:3.3.0 without jcenter repo?
- SQLiteOpenHelper onUpgrade called with wrong oldVersion?
- How to set a one-to-many relationship in greenDAO?
- How To Migrate existing Database From greendao to Room database in android
- How do i update call log data in db upto date (java android)
- Android SQLite query optimization (ORM GreenDao)
- android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed using greenDAO ORM
- Does RoomDB supports dropAllTables() and createAllTables()?
Related Questions in STORIO
- Using StorIO with AndroidX and Jetifier
- How to ensure that a column won't get overriden by a null value?
- StorIO observeChangesInTable, can i get updated rows/items with it?
- Resolver for inner-nested object in storio
- Save new object to table (StorIO)
- Keeping a subscription open in a singletion
- Create new databases on runtime in app
- Best method to get android contact infos (addressbook) with StorIO
- What are the various column types you can have in StorIO?
- Best approach when working with existing SQLite database in StorIO
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 # Hahtags
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).