Perst lite, PointBase Micro, Oracle, OpenBaseMovil etc.. which one is best? - CLDC and MIDP

Hello there,
I have following points before choosing embedded DB for J2ME (MIDP 2.0 and CLDC 1.0/1.1):
1. capable of CRUD (Create, update , delete) rows with minimal effort.
2. capable to store data in rows and columns.
3. capable to sort data.
4. capable of creating relationships between tables.
5. capable of easy synchronization with remote DB. At least should be capable to keep track/log of changes made and give us the same for syncing with remote DB.
6. fully compatible with J2ME.
7. light footprint and good memory management.
8. no restrictions on data storage limit and column data lengths.
I appreciate any Ideas about best suited embedded DB (not RMS pls).

Guys any replies?



Hi All,
I am developing a demon application in which i have to populate a log file in mysql 4.0 database table on daily basis. As per the requirement i have to do various query on this table and store the output in another table's. In my case requirement can keep on increasing. So which java technology is best suited for this situation to achieve maximum flexibility i mean as the number of query increases only we have to configure this query.
Thanks in Advance for the advice 
Edit: Your best option, of course, is a well designed primary key (and any other needed indexes). And, if you can (I don't know since I haven't looked into for MySQL), a partitioned table.

database in j2me

Hi. i'm new in j2me.
im working in a project with j2me and i have to use a lot of information.
I don't know how can i create database files and put them in a palm device.
help me plz.
why do not try with the class RecordStore from javax.microedition.rms package? 
The problem is that i have the information in a external database and i have to put them in the palm.. 
I use DB4O, Database for Objects, ( It has a small footprint and uses query by example to retrieve objects from the db.
If you want to have a relational database, I would recommend Pointbase (
The disadvantage is that you have to create all your tables by SQL-Statements.
In DB4O you just put the object in the container.
Hope this helps...
You've got more options now: and
BaseMovil has a relational database engine with an easy to use JDBC-like API, an probably some SQL support in the future.
It can store hundreds of thousands of rows, it has no built-in limits.
But the best of it is that you have a lot more tools than just the database:
- Basic things like compression, encryption, floating point support for CLDC1.0, serialization/deserialization, an MVC framework, and more.
- A synchronization engine, that is able to create the database structure, populate it with the appropriate data and then update the database structure and data in a full duplex way, connecing then to a back-end service like Sap Business One, Microsoft Navision or whatever other system through a simple data interchange API. This is available in the commercial version only.
- An ui toolkit, with ready to use data aware views that you define with an XML file and then bind to Row or RowSets and the do all the work, like navigation through RowSets or CRUD operations over ROWS.
- Local connectivity to bluetooth enabled devices like printers, barcode scanners or GPS antennas.
- A scripting engine.
The open source version has everything from the commercial version but the synchronization engine. The open source version is free for GPL projects, but can be purchased under a commercial license if you want to build closed source applications.
The commercial platform provides hosting, application distribution via OTA and billing. You just upload your database definition (an XML file), your application and start selling it. It is free for developers, as your customer will pay a small monthly fee for each device and you just share a fraction of the fee (you define the fee).
Take a look at it, you even have a demo with microemu at so you can see what I mean. It runs better on real phones, but that can give you a very close approach.
If you are interested you can contact us at info at elondra dot com.
sir i am using the j2me for developing my mobile application i want the idead that which database to use to store the information plzzzzzzz help me and sir plz tell me in details plzzzzzz

ORACLE resource connector using multiple tables

The Oracle connector is using a single table to exchange data.
Has someone already implemented a connector working with multiple tables in read/write bi-directionnal modes ?
(select * from Table A, Table B where A.key = B.key...)
Can store procedures be used as well ?
It is somewhat cumbersome to map a relational db using a flat model ;-?
Thanks for your help
I don't think that stored procedures are possible with the adapters
But I am sure SUN has already implemented custom adapters working on multiple tables with sql statements
SUN experts, have you done this ?
Do we need to use an API to do this ? which API ?
You help is very much appreciated
;-) ;-) ;-) ;-) ;-) ;-) ;-) 
I believe that there are two approaches you can take for this:
1) Create views on top of the database tables you need to access and continue to use the Database Table adapter (that's what you're using, right?).
2) Write your own custom adapter starting from that is in the REF kit. See the Adapter Development chapter in the Technical Deployment guide.
An educated guess would be to go with the view in Oracle since this is what oracle is best at!
Well to me, a view if only a flat aggregation of several tables for read-only purpose. It is ok to be used with a simple adapter to read data
However it cannot catter ?:
* db writes on the relational model
* advanced queries
In my case, we want IDM workflow to:
create new objects in the database, update them along with the workflows or provisionning events...
make queries on the db data model, to parse objects if necessary, deduct an approver name, compute escalation paths,etc...
Is that really possible with solution 1) views ?
Thanks for you help

Data Mining in java

hi, we have a project wherein we are told to create a data mining program that uses association rules using only java and MySQL.
any ideas on how i can get started? 
JBryan wrote:
hi, we have a project wherein we are told to create a data mining program that uses association rules using only java and MySQL.
any ideas on how i can get started?JDBC. Possibly Hibernate too. I'd tend to do as much as possible on the database and just leave the 'finishing touches' to your Java program to minimize the amount of traffic between your db and the application.
I suspect the fun part will be writing the 'rule translator'.
Set up a series of views and stored procedures to collate the data. Far faster than doing it outside the database.
You can use Java to present the data if you wish.
Quality database engines will have BI and datamining tools available for them though. Things like Oracle Discoverer.

JPA + JavaDB + JavaSE + Toplink = ???

I have just a few questions about using JPA with JavaDB in JavaSE applications using the Toplink Essentials Implementation provided by Netbeans.
[u][b]The Setup[/b][/u]
I have a nice looking app, which works greats, especially on my local machine, but when deployed in a Client - Server environment over a local network, I have issues with database and JPA performance. Basically, I'm a bit worried about memory consumption and management. I need to deploy the application for my clients who are not so tech savvy and do not necessarily have the best local network setup in the world.
The database is currently running on common WinXP box, which used both as server and a client (DB and App run in separate VM), and atleast Six (6) other clients connect to this box.
[u][b]The Problems[/b][/u]
1. The issue here is that when the DB starts up normally, the memory consuption is at about [b]29MB[/b], quickly rises to about [b]98MB[/b] just after about [b]2 or 3 JPA queries[/b], but the good thing is that is remains like this for a great percentage of the time and however never reduces, even with explicit System.gc() calls. Is this this a cause for concern? Also, is it part of my performance problems?
2. I'm using JPA to page the queries using the setMaxRows() and setFirstPosition() methods and returning about 200 rows per page. This works quite well on my local machine, but over the next work performance tends to be a bit slow. Secondly, I'm quering for Person objects which have atleast one filled BLOB field for person's photo, so I'm not sure if that accounts for the performance drop, cos the BLOB data is growing steadily. Is this a problem?
Also, this data is used to populate a TableModel which is used in a JXTable, so that some columns can hidden and shown depending on user preference. Is this a good approach, or just selecting the required fields is a better option? (this approach is certainly easier for development)
3. I figured JPA was doing in memory sorting and paging, because until JavaDB 10.5, OFFSET and FETCH NEXT were not supported, so I have upgraded the Derby installation but I'm not sure if the Toplink JPA Implementation supports this new feature of Derby. The question is, will JPA now use the new offset and fetch next to improve the paging performance or must I find an updated version of Toplink Essentials before it will work? Or should I just change provider and switch to Hibernate for instance.
I guess these are the issue for now. If anyone has other performance tips, I'll gladly like to here them. Also, sadly I tend to sort on non indexed columns and it is difficult to find columns to index cause the data tends to be quite unique per individual.
Also, other smaller tables in the DB are not a problem. This current Members table has just about 2000 records, so I think performance should be better than it is now.
Thanks for any response to this post!
Alright people, I've worked on my problem and have taken certain steps that vastly improved the overall performance of my JPA -> Java DB communication.
[b]Steps Taken[/b]
1. Upgraded my Java DB installation and the database for the application to ( the latest)
2. Created Indexes on several of the columns in the most frequently used tables in the DB
3. Created two JPA Entity classes that map to same table which stores profiles of members of the organisation (poor design I know). The first maps to all the columns in the table including BLOB columns and all (Person class). Then I created a second Entity class that maps to only the VARCHAR columns in the DB (MemberData class).
4. I then rewrote all the TableModel implementations that used Person and replaced them with MemberData references instead. I however maintained all the classes that used Person for creating profiles and for displaying full profile information.
5. Ensured that all calls the to retrieve MemberData Entities were paged to retrieve only 200 records at a time.
The result is blazing fast performance because only VARCHAR columns are retrieved when retrieving MemberData Entities and used for the TableModels. Also, due to the Indexing of columns in the database, returned results are ordered faster.
Screenshots of the application in question can be seen here: