24/05/2018, 23:57

Persistent Storage Through the Record Store

RMS là hệ thống được tổ chức và quản lý dưới dạng các record (bản ghi). Mỗi bản ghi (sau này gọi là Record) có thể chứa bất kỳ loại dữ liệu nào, chúng có thể là kiểu số nguyên, chuỗi ký tự hay có thể là một ảnh và kết quả là một Record là một chuỗi ...

RMS là hệ thống được tổ chức và quản lý dưới dạng các record (bản ghi). Mỗi bản ghi

(sau này gọi là Record) có thể chứa bất kỳ loại dữ liệu nào, chúng có thể là kiểu số nguyên, chuỗi ký tự hay có thể là một ảnh và kết quả là một Record là một chuỗi (mảng) các byte. Nếu bạn mã hoá dữ liệu của bạn dưới dạng nhị phân (binary), bạn có thể lưu trữ dữ liệu bằng Record sau đó đọc dữ liệu từ Record và khôi phục lại dữ liệu ban đầu. Tất nhiên kích thước dữ liệu của bạn không được vuợt quá giới hạn qui định của thiết bị di động. RMS lưu dữ liệu gần như một cơ sở dữ liệu, bao gồm nhiều dòng, mỗi dòng lại có một số định danh duy nhất:

1

Một tập các bản ghi (sau này gọi là RecordStore) là tập hợp các Record được sắp xếp có thứ tự. Mỗi Record không thể đứng độc lập mà nó phải thuộc vào một RecordStore nào đó, các thao tác trên Record phải thông qua RecordStore chứa nó. Khi tạo ra một Record trong RecordStore, Record được gán một số định danh kiểu số nguyên gọi là Record ID. Record đầu tiên được tạo ra sẽ được gán Record ID là 1 và sẽ tăng thêm 1 cho các Record tiếp theo. Cần chú rằng Record ID không phải là chỉ mục (index), các thao tác xóa Record trong RecordStore sẽ không gây nên việc tính toán lại các Record ID của các Record hiện có cũng như không làm thay đổi Record ID của các Record được tạo mới, ví dụ: khi ta xóa record id 3 khi thêm một record mới sẽ có id là 4. Data là một dãy các byte đại diện cho dữ liệu cần lưu.

Tên được dung để phân biệt các RecordStore trong bộ các MIDlet (MIDlet suite). Cần chú ý khái niệm MIDlet suite là tập các MIDlet có chung không gian tên (name space), có thể chia sẽ cùng tài nguyên (như RecordStore), các biến tĩnh (static variable) trong các lớp và các MIDlet này sẽ được đóng gói trong cùng một file .jar khi triển khai. Nếu ứng dụng của bạn chỉ có một MIDlet thì các RecordStore được sử dụng cũng phân biệt lẫn nhau bằng các tên. Tên của RecordStore có thể dài đến 32 ký tự Unicode và là duy nhất trong một MIDlet suite.

Đường liền thể hiện việc truy xuất Record store do MIDlet đó tạo ra, đường nét đứt là

Record store do MIDlet khác tạo ra.

Trong MIDLET Suite One, MIDlet #1 và MIDlet #2 cùng có thể truy xuất 4 Record store. MIDLET Suite One không thể truy xuất Record store trong Suite Two. Trong MIDlet Suite One tên của các Record store là duy nhấy, tuy nhiên Record store trong các MIDlet Suite khác nhau có thể dùng chung một tên.

Record Store còn có 2 thuộc tính là Version Number và Date/time Stamp, các giá trị này thay đổi khi thực hiện thêm, thay thế hay xóa một record, ngoài ra còn có thể dùng cơ chế event handler (Listener) để phát hiện mỗi khi Record store bị thay đổi.

Version number là một số integer, để biết giá trị khởi đầu bạn cần gọi hàm getVersion() sau khi tạo một Record store.

Date/time Stamp là số long integer, là số miliseconds kể từ ngày 1 tháng 1 năm 1970, bạn có thể biết được giá trị này thông qua hàm getLastModified().

0