I am currently creating an android that will use SQLite offline and MySQL when the mobile phone in connected in a network or intranet.
Is it possible? If not can you suggest other methods?
Thank You and appreciate the help
You're describing a distributed database. The pattern that works best in this case is to ensure your app goes uses the local SQLite database for all data presented to the user. You don't want your app to be waiting for MySQL data - the user might decide to walk into an elevator and lose coverage, or whatever.
Use a background thread to keep the MySQL data synchronized with your local SQLite data, and use notifications to tell the app when new data is available for display.
Related
Is it possible to store data directly to the database without having the user input something in it. I am planning on creating a school updater which updates students regarding school news and such. What confuses me is that how can I store data directly into it. Im not that good on servers so Im resorting into databases but Im confused where to start.
Thanks a lot!
Do you want to store data in a remote database? If yes, you may want to use REST-APIs/Webservices and process the data on the remoteserver.
You should not (except Databases like CouchDB) connect your device directly to any remote remote device for security reasons.
Anyway, you may create a local SQLite database on your device and synchronise the data using REST.
I m developing an app similar to uber with android as front-end with rest api to serve data which is stored in mysql.
I would like to know if sqlite is used instead of mysql to achieve the above process because of the reasons sqlite exist in phone and data 'll be deleted after uninstalling the app.
sqlite database in android is used to store data which will not be stored in the backend but inside your phone only which you would not like to fetch from network everytime! for instance- user's ride history or user specific data. Although they'll need to be updated in regular interval.
In mysql you would need to store the backend data. so these two are two different things.
i hope you understand the diff among these and if you don't you should read a lot about these.
I started developing an app that uses sqlite that is to be installed on multiple devices and any updates done on sqlite database from any device are to be reflected in other devices as well. I have researched a little and found that Sqlite DB is local to a device and changes done in one device are not reflected in others and for that I have to use external server. Is there any way around it?
Is it optimal to directly store data in external server or use sqlite and sync it regularly with external database?
Thanks in advance
As far as I know, there isn't a way without an external database. I would recommend you to sync it regularly with an external database.
Checkout this question for more information how to do that:
How to sync SQLite database on Android phone with MySQL database on server?
Answer of Andrew White
Create a webservice (REST is probably best) and serialize your SQLite/MySQL data and PUT/POST/GET it to/from your web service. This will give you a nice layer of abstraction in case you decide to switch from MySQL to something else server side.
You will achieve your goal using external server. It's not necessary to create your own server, just use data store services like Parse. For more look here.
You can use data directly from external server or cache them on your device first (sqlite, prefs, json etc.) – it's up to you.
Can someone give me an idea or point me in the right direction about following matter:
I need to make android app that will do some things with remote oracle database (take some data, insert some data, ...).
I can do that, but the trick is, app owner needs to be able to do that offline (because he doesn't have internet everywhere), then when user connects to internet, somehow transfer those offline changes in local android database to oracle database.
I never did something like that.Any pointers?
Should I make same database structure in android database like that remote oracle database?Then somehow synchronize changes?
Or is it done some other way?
Thanks for any help.
If you have the ability, it would be best to create a RESTful application on the server that listens for your app to contact it. Then it would take the data (send it from your app via JSON, XML or any of several other popular formats) and operate directly on the Oracle database by doing the adds/inserts/deletes there.
You can do the same thing on the way down - your app contacts the server, the server provides data from the database in the form of JSON, XML, etc and your app can then operate on it's own internal JAVA objects of data.
I've created a pre-made database in SQLite for an Android app I'm developing. The app should interact and pull data from the database and display it on different 'Intents'. For now I just want to set up a local server on my Windows Computer for the database.
I was wondering what is the best way of doing so? I have little to no experience with setting up local servers or anything with regards to servers.
Thanks for any help!
There is no such thing as an SQLite "server". SQLite runs locally only through libraries. Also, Android database connections can not simply connect to anything on a server.
If you need a database on a server and an Android client to manipulate the data, you need to implement some kind of client-server architecture, for example using (RESTful) WEB services or any other client-server-communication.