Selasa, 12 Juni 2012

UNIT II - Bab 6 - Bagaimana untuk merekam data persisten?


UNIT II - Bab 6 - Bagaimana untuk merekam data persisten?

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:
  • RecordStore
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;
     }
}
Teks asli Inggris
The persistent storage is required for storing various kinds of data which may include text, images, video or audio recordings as well as other forms of binary data.
Sarankan terjemahan yang lebih baik

Tidak ada komentar:

Posting Komentar