This Application is used to explain how to store data in the database. In this example we are going to import the javax.microedition.rms package to access the RecordStore class. The RecordStore class is used to get the data through the getRecord() method, write the data through setRecord() method, open the record through openRecordStore() method, close the record through closeRecordStore() and delete the data through deleteRecord() method. In this example all record and size of the record display on the console screenshot is given below.


RecordDataBase.java
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
public class RecordDataBase extends MIDlet {
static final String DBNAME = "RecordDataBase";
public void startApp(){
RecordStore rs = null;
try{
RecordStore.deleteRecordStore(DBNAME);
} catch(Exception e){}
try{
rs = RecordStore.openRecordStore(DBNAME, true);
byte[] data1 = "First Record".getBytes();
byte[] data2 = "Second Record".getBytes();
byte[] data3 = " Third Record".getBytes();
data3[0] = 0;
data3[data3.length-1] = (byte) -1;
rs.addRecord(data1, 0, data1.length);
rs.addRecord(data2, 0, data2.length);
rs.addRecord(data3, 0, data3.length);
storeData(rs, System.out);
rs.closeRecordStore();
}catch(RecordStoreException e){
System.out.println(e);
}
notifyDestroyed();
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void storeData(RecordStore rs, PrintStream out){
if(rs == null) return;
StringBuffer hexLine = new StringBuffer();
StringBuffer charLine = new StringBuffer();
try{
int lastID = rs.getNextRecordID();
byte[] data = new byte[100];
int size;
for(int i = 1; i < lastID; ++i){
try{
size = rs.getRecordSize(i);
if(size > data.length){
data = new byte[size * 2];
}
out.println("-------------------------------------");
out.println("Size = " + size);
out.println("-----------------------------------");
rs.getRecord(i, data, 0);
storeRecord(data, size, out, hexLine, charLine, 16);
out.println(" ");
} catch(InvalidRecordIDException e){
continue;
}
}
} catch( RecordStoreException e ){
out.println(e);
}
}
private void storeRecord(byte[] data, int size, PrintStream out,
StringBuffer hexLine, StringBuffer charLine, int maxLen ){
if(size == 0) return;
hexLine.setLength(0);
charLine.setLength(0);
int count = 0;
for(int i = 0; i < size; ++i){
char b = (char) (data[i] & 0xFF);
if(b < 0x10){
hexLine.append('0');
}
hexLine.append(Integer.toHexString(b));
hexLine.append(' ');
if((b >= 32 && b <= 127) ||
Character.isDigit(b) ||
Character.isLowerCase(b) ||
Character.isUpperCase(b)){
charLine.append((char)b);
} else {
charLine.append(' ');
}
if(++count >= maxLen || i == size-1){
while(count++ < maxLen){
hexLine.append(" ");
}
hexLine.append(' ');
hexLine.append(charLine.toString());
out.println( hexLine.toString());
hexLine.setLength(0);
charLine.setLength(0);
count = 0;
}
}
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: J2ME Record Data Base View All Comments
Post your Comment