Skip to main content

J2ME and A database with small footprint

2 replies [Last post]
qwikm
Offline
Joined: 2007-02-07
Points: 0

Team ,
Sorry for my ignorance. I am looking for a smartphone based prototype that needs a local (smartphone based) database. Ideally I am looking for basic store, delete and retrieve capabaility in the db , nothing fancy.

Is there any open source/free db that I can use in teh smartphone environment ?

Thanks in advance
QM

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
brucejh
Offline
Joined: 2009-01-26
Points: 0

QM,

I know this is two years after your questions, but I thought I would post this anyway because there are so many people who have asked the same question, which we use to ask. Now we have a better option to share.

We have been working in the mobile CDC and CLDC arena since 2000. Most of the options for a db have not been that great. We have used Derby and JavaDB and really have tested all of the SQL and Object DB's for CLDC and CDC enviornments. We were using Pointbase, which supported both environments, but then IBM bought the parent company and shelved the product. But even Pointbase was not well tested and had errors on SQL syntax.

We finally go tired of these types of issues and started developing a new db. We are going to launch this db for ourselves and make it available to others at a small fee in Feb 2009. This new db has been tested more thoroughly than any of the other options we have seen in the CLDC market and at this time we don’t believe there is any other good SQL option. We have used over 2000 test points on each platform that include multiple versions of Windows Mobile, Blackberry, Symbian, Android, Brew, LiMo, Mobilinux and with many JVM's including Aplix - JBlend, Esmertec - Jbed, Mysaifu, KAFFE, NSIcomp (CreMe), and IBM J9.

In Feb 2009, we will have tested versions for CLDC (for both 1.0 and 1.1 as well as for the RMS file system with an extension for unlimited data storage, JSR-75 file system and Blackberry’s native PerstObject file systems), CDC, Android and desktops.

The DB is only about 107 K (all of the other options are 3M+), it support a large portion of the SQL92 standards and provides triggers, views, most types of joins, embedded JDBC driver, auto-commit, encryption, uencoding (UTF-8) with language-specific sort templates, ACID compliance, etc. In the future, we will add capabilities for XML syntax and object syntax processing as well as synchronization tools and integration with all of the major development tools.

The DB can run in physical storage mode or in-memory mode with the option to only load tables into memory as needed. On a mobile phone (CLDC), it can process select transactions with 200 records and where clause parameters in less than 1/2 second and can join 10,000 records in about 3 seconds and only using about 350K of memory. These performance benchmarks are 10x to 250x better than what we have seen from other DB's in this environment and we have tuned the DB performance based upon a variety of internal and academic research.

Thus, we feel that we finally have a reasonable option for managing persistent data on CLDC phones while being able to use the same DB for applications on other mobile platforms and desktops. We are going to be using this as the basis for all of our future business and consumer applications.

If you would like to know more about it, let me know. We are going to make it available to other companies via a new company called Zoduna Corp (web site is not up yet). bruce.howard@zoduna.com

terrencebarr
Offline
Joined: 2004-03-04
Points: 0

Hi,

If your stack contains MIDP then you can use the javax.rms funtionality, which is a simple non-relational record store. See

http://jcp.org/aboutJava/communityprocess/mrel/jsr118/index.html

If you're looking for something more advanced, like a relational db, there are several commercial and open source options. See

http://developers.sun.com/techtopics/mobility/allsoftware/

scroll about half way down the page or look for 'sql'.

Hope that helps,

-- Terrence

Terrence Barr
Evangelist, Java Mobile & Embedded Community
Sun Microsystems, Germany
www.mobileandembedded.org