Setiap media pemrograman yang baik perlu memfasilitasi menyelamatkan data persisten. Penyimpanan
persisten diperlukan untuk menyimpan berbagai jenis data yang dapat
mencakup teks, gambar, video atau rekaman audio serta bentuk-bentuk data
biner. Penginderaan ini Java Platform 2, Micro Edition (J2ME) telah menyediakan paket javax.microedition.rms.
Profil MIDP 1.0 berisi dukungan untuk 'Record Management System' yang membantu kita menyimpan berbagai jenis data. Hal
ini mungkin tampak sedikit berbeda dengan programmer desktop seperti
yang biasa digunakan untuk sistem file untuk menyimpan data. Tapi MIDP telah menyediakan untuk RMS karena lebih cocok untuk perangkat kecil untuk menyimpan data. Para pendiri J2ME juga memastikan bahwa data yang berada di RMS aman. Biasanya diharapkan bahwa data di dalam RMS terus-menerus disimpan untuk referensi di masa mendatang. Seharusnya tidak terhapus secara otomatis karena faktor seperti menutup MIDlet atau reboot atau perubahan baterai. Juga
RMS memungkinkan MIDlet yang berbeda dalam MIDletSuite sama untuk
mengakses setiap catatan lain tetapi tidak memungkinkan MIDlet dari
MIDletSuite berbeda untuk mengakses data. Ini membantu dalam membatasi modifikasi yang tidak sah dalam data.
Sistem manajemen catatan mengandung unsur-unsur berikut:
Antarmuka:
- RecordComparator
- RecordEnumeration
- RecordFilter
- RecordListener
Kelas:
Pengecualian (Tampil secara terpisah dari kelas untuk kejelasan):
- InvalidRecordIDException
- RecordStoreException
- RecordStoreFullException
- RecordStoreNotFoundException
- RecordStoreNotOpenException
RecordStore
Kelas
'RecordStore' adalah yang paling penting basis data kelas terkait.
'RecordStore' kelas yang dapat dianggap sebagai kumpulan catatan. Kelas ini memberikan metode untuk menambahkan, menghapus, melintasi dan melakukan beberapa fungsi lainnya pada catatan data. Hal
ini umumnya diharapkan bahwa data yang disimpan dalam RecordStore akan
disimpan terus-menerus dan bahwa baterai perubahan atau mematikan
aplikasi atau telepon tidak akan mengakibatkan hilangnya data.
Sebuah aplikasi diperbolehkan untuk memiliki RecordStores berbeda selama mereka semua memiliki nama yang berbeda. Nama-nama RecordStore bisa berupa kombinasi dari hingga 32 karakter Unicode. Juga nama-nama RecordStore adalah case sensitif. Jadi RecordStore bernama "data" berbeda dari RecordStore bernama "Data".
Catatan adalah array byte. Anda dapat menggunakan aliran berikut untuk menyimpan dan mengambil data dari RecordStore ini:
- DataInputStream
- DataOutputStream
- ByteArrayInputStream
- ByteArrayOutputStream
Catatan disimpan dalam RecordStore dengan recordId unik. Nilai
recordId adalah bilangan bulat dan mulai dengan nilai 1 untuk record
pertama dan nilai dari record berikutnya adalah 2 dan sebagainya.
RecordComparator
RecordComparator
adalah sebuah antarmuka yang mendefinisikan metode membandingkan yang
membandingkan dua catatan untuk melihat apakah mereka cocok atau apa
urutan relatif mereka. Aplikasi mengimplementasikan RecordComparator untuk membandingkan dua catatan. Urutan kedua catatan dikomunikasikan oleh nilai kembali. RecordEnumeration memanggil membandingkan metode untuk mengurutkan dan kembali catatan dalam urutan aplikasi yang ditentukan.
Contoh Kode
RecordComparator rc = CustomRecordComparator baru (); / / A RecordComparator menerapkan kelas
if (rc.compare (recordStore1.getRecord (rec1), recordStore1.getRecord (rec2)) == RecordCompara
tor.PRECEDES)
{
/ / Kode kustom Anda tindakan
}
RecordEnumeration
Kelas ini mempertahankan urutan logis dari itu recordId dari record dalam record store. Pencacah
Rekam iterates atas setiap (atau satu set parsial, jika filter catatan
opsional telah diberikan) dari catatan dalam perintah yang ditentukan
oleh komparator catatan opsional. Ini fungsi dari interface ini dapat digunakan untuk menyediakan kemampuan penyortiran.
RecordFilter
Antarmuka
RecordFilter mendefinisikan sebuah filter yang scan catatan untuk
melihat apakah itu sesuai kriteria aplikasi didefinisikan. Ia mengembalikan true jika kriteria yang cocok.
Contoh Kode
RecordFilter rf = new CustomRecordFilter (); / / A RecordFilter kelas yang mengimplementasikan
if (rf.matches (recordStore1.getRecord (theRecordID)) == true)
{
/ / Disesuaikan tindakan kode
}
RecordListener
Peran antarmuka RecordListener adalah untuk menerima peristiwa Rekam berikut dari sebuah toko kaset:
§ recordAdded
§ recordChanged
§ recordDeleted
Metode interface ini memberikan kita dengan RecordStore dan recordId dari catatan yang dihasilkan acara tersebut.
Diberikan di bawah ini adalah contoh MIDlet yang memberikan pilihan untuk menyimpan atau mengambil string teks sederhana. Harap menyimpan data sebelum mengambilnya.
Contoh Kode: Rekam Sistem Manajemen
/ *
* HelloMIDlet.java
*
* Dibuat pada tanggal 8 Juni, 2004 22:23
* /
mengimpor javax.microedition.midlet *;.
mengimpor javax.microedition.lcdui *;.
import java.io. *;
javax.microedition.rms impor *;.
/ **
* Sebuah MIDlet contoh yang memberikan pilihan untuk menyimpan atau mengambil string teks sederhana
* Silakan menyimpan data sebelum mengambilnya
*
* @ Author Saurabh Jain
* @ Version 1.0.0
* /
HelloMIDlet public class MIDlet meluas mengimplementasikan CommandListener
{
boolean swasta init;
swasta Command save; / / Perintah save
Command swasta mengambil; / / Perintah keluar
swasta Tampilan layar; / / Layar untuk MIDlet ini
swasta TextBox t;
swasta RecordStore recordStore;
/ **
* Start up MIDlet Halo dengan menciptakan TextBox dan bergaul
* Perintah keluar dan pendengar.
* /
public void startApp ()
{
if (init == false)
{
menampilkan Display.getDisplay = (ini);
this.save = new Command ("Simpan", Command.OK, 1);
this.retrieve = new Command ("ambil", Command.EXIT, 1);
t = new TextBox ("Hello MIDlet", "Test string", 256, 0);
t.addCommand (this.save);
t.addCommand (this.retrieve);
t.setCommandListener (ini);
init = true;
}
display.setCurrent (t);
}
/ **
* Jeda adalah no-op karena tidak ada kegiatan latar belakang atau
* Catatan toko yang perlu ditutup.
* /
public void pauseApp () {
}
/ **
* Destroy harus semuanya pembersihan tidak ditangani oleh kolektor sampah.
* Dalam hal ini tidak ada yang perlu pembersihan.
* /
public void destroyApp (boolean unconditional) {
}
/ *
* Menanggapi perintah, termasuk keluar
* Pada pembersihan keluar perintah, dan memberitahukan bahwa MIDlet telah dihancurkan.
* /
public void commandAction (Command c, s dapat ditampilkan)
{
if (c == this.save) / / Pada menekan perintah save
{
this.save (t.getString ());
}
else if (c == this.retrieve) / / Pada menekan mengambil perintah
{
t.setString (this.retrieve ());
}
}
/ / Metode untuk menyimpan string teks
private void save (teks String)
{
byte [] data;
mencoba
{
/ / Membuka recordStore yang
/ / Jika ada RecordStore membukanya lagi menciptakan satu
this.recordStore = RecordStore.openRecordStore ("database", true);
/ / Mengkonversi teks ke String array byte
data = text.getBytes ();
/ / Memeriksa untuk melihat apakah RecordStore tidak kosong
if (this.recordStore.getNumRecords () == 0)
{
/ / Menambahkan catatan di RecordStore yang
this.recordStore.addRecord (data, 0, data.length);
}
lain
{
/ / Mengatur catatan di RecordStore pada posisi 1
this.recordStore.setRecord (1, data, 0, data.length);
}
}
catch (Exception e)
{
e.printStackTrace ();
}
}
/ / Metode untuk mengambil string teks
private String pengambilan ()
{
String s = "";
mencoba
{
/ / Membuka recordStore yang
/ / Jika ada RecordStore membukanya lagi menciptakan satu
this.recordStore = RecordStore.openRecordStore ("database", true);
/ / Memeriksa untuk melihat apakah RecordStore tidak kosong
if (this.recordStore.getNumRecords () == 0)
{
s = new String ("RecordStore Kosong");
}
lain
{
s = new String (this.recordStore.getRecord (1));
}
}
catch (Exception e)
{
e.printStackTrace ();
}
kembali s;
}
}
Tidak ada komentar:
Posting Komentar