1. Trang chủ
  2. » Lịch sử

Lập trình J2ME cho thiết bị di động -Phần 4

7 16 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 189,17 KB

Nội dung

Record Management System (RMS). 5.[r]

(1)

Giáo viên : Tr nh Th Vân Anh

L P TRÌNH J2ME CHO THI T B DI Đ NG

L P TRÌNH J2ME CHO THI T B DI Đ NG

PH N 4

PH N 4

(2)

2 5 Record Management System (RMS)

5 Record Management System (RMS)

 MIDP không s d ng h th ng file đ l u tr d li u Thay vào MIDP l u tồn b thơng ụ ệ ố ể ữ ữ ệ ộ

tin vào non-volatile memory (dung lượng vùng nh ) b ng h th ng l u tr g i Record ằ ệ ố ữ ọ

Management System (RMS)

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

th ch a b t kỳ lo i d li u nào:ki u s nguyên, chu i ký t , m t nh k t qu c a m t ể ứ ấ ữ ệ ể ố ỗ ự ộ ả ế ả ủ ộ

Record m t chu i (m ng) 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 khơi ph c ể ữ ữ ệ ằ ọ ữ ệ ụ

l i d li u ban đ u Kích thạ ữ ệ ầ ước d li u không đữ ệ ược vu t 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 nh t ộ ố ị ấ

 M t t p b n ghi(RecordStore) t p h p Record độ ậ ả ậ ợ ượ ắc s p x p có th t M i ế ứ ự ỗ

Record không th đ ng đ c l p mà ph i thu c vào m t RecordStore đó, thao tác ể ứ ộ ậ ả ộ ộ

trên Record ph i thơng qua RecordStore ch a Khi t o m t Record RecordStore, ả ứ ộ

Record gán m t s đ nh danh ki u s nguyên g i Record ID Record đ u tiên độ ố ị ể ố ọ ầ ược t o s đạ ẽ ược gán Record ID 1,s tăng thêm cho Record ti p theo Record ID không ẽ ế

là ch m c (index), thao tác xóa Record RecordStore s khơng tính tốn l i ỉ ụ ẽ

Record ID c a Record hi n có khơng thay đ i Record ID c a Record đủ ệ ổ ủ ượ ạc t o m i, ví d : xóa record id 3, thêm m t record m i s có id Data m t dãy byte đ i ụ ộ ẽ ộ

di n cho d li u c n l u.ệ ữ ệ ầ

Tên dung đ phân bi t RecordStore b MIDlet (MIDlet suite) MIDlet ể ệ ộ

suite t p MIDlet có chung khơng gian tên (name space), chia s tài nguyên (nh ậ ẻ

RecordStore), bi n tĩnh (static variable) l p MIDlet s đế ẽ ược đóng gói m t file tri n khai N u ng d ng c a b n ch có m t MIDlet ộ ể ế ứ ụ ủ ỉ ộ

RecordStore đượ ục s d ng phân bi t l n b ng tên Tên c a RecordStore có ệ ẫ ằ ủ

(3)

3 Các v n đ liên quan đ n RMS ế

Các v n đ liên quan đ n RMS ế

H n ch v kh l u tr c a thi t b di đ ng : ế ề ư ữ ủ ế ị Dung lượng vùng nh ớ

(non-volatile memory) dành riêng cho vi c l u tr d li u RMS thay đ i tùy ệ ư ữ ữ ệ ổ

theo thi t b di đ ng Đ c t MIDP yêu c u r ng nhà s n xu t thi t b di đ ng ế ị ộ ặ ả ầ ằ ả ấ ế ị ộ

ph i dành vùng nh có kích thả ớ ước nh t 8K cho vi c l u tr d li u ấ ệ ư ữ ữ ệ

RMS Đ c t không nêu gi i h n cho m i Record RMS cung c p API đ ặ ả ớ ạ ỗ ấ ể

xác đ nh kích thị ướ ủc c a m i Record, t ng dung lỗ ổ ượng c a RecordStore kích ủ

thước l i c a vùng nh Do q trình phát tri n ng d ng ạ ủ ớ ể ứ ụ

J2ME b n ph i cân nh c vi c s d ng vùng nh này.ạ ả ắ ệ ụ ớ

T c đ truy xu t d li u : ấ ữ ệ Các thao tác vùng nh s ch m h n nhi u ớ ẽ ậ ơ ề

truy xu t d li u b nh RAM Gi ng nh t c đ đ c c ng t c đ đ c ấ ữ ệ ộ ớ ố ư ố ộ ọ ổ ứ ố ộ ọ

t RAM c a máy tính Trong k thu t l p trình ph i thừ ủ ỹ ậ ậ ả ường xuyên cache d li u ữ ệ

và thao tác liên quan đ n RMS ch th c hi n t p trung m t l n (lúc kh i đ ng ế ỉ ự ệ ậ ộ ầ ở ộ

hay đóng ng d ng)ứ ụ .

C ch lu ng an toàn :ơ ế ồ N u RecordStore ch đế ỉ ượ ục s d ng b i m t MIDlet, ở ộ

không ph i lo l ng RMS s dành riêng m t Thread đ th c hi n thao tác ả ắ ẽ ộ ể ự ệ

RecordStore Tuy nhiên n u có nhi u MIDlet Thread chia s m t ế ề ẻ ộ

RecordStore ph i ý đ n k thu t l p trình Thread đ đ m b o khơng có s ả ế ỹ ậ ậ ể ả ả ự

(4)

4 Các hàm API RMS (1)

Các hàm API RMS (1)

 RecordStore khơng có hàm kh i t o.ở

RecordStore Class: javax.microedition.rms.RecordStore

static RecordStore openRecordStore(String recordStoreName, boolean createIfNecessary) :

M m t Recordstore, có tham s t o Record store n u ch a t n t i ộ ố ế

 Ví d : chụ ỉ nhất đ i tố ượng RecordStore đượ ạc t o m c dù m nhi u l n tênặ ề ầ private RecordStore rs = null;

static final String REC_STORE = "db_1"; private void db(String str) {

System.err.println("Msg: " + str); } }

public void openRecStore() { try {

// Create record store if it does not exist

rs = RecordStore.openRecordStore(REC_STORE, true ); }

catch (Exception e) {

db(e.toString()); } }

(5)

5 Các hàm API RMS (2)

Các hàm API RMS (2)

void closeRecordStore() : Đóng RecordStore  Ví d :ụ

private RecordStore rs = null; public void closeRecStore() {

try{

rs.closeRecordStore(); }

catch (Exception e) {

db(e.toString()); } }

static void deleteRecordStore(String recordStoreName) : Xóa RecordStore

static String[] listRecordStores() : Danh sách RecordStore MIDlet suite, trả ề v mảng chu i tên c a RecordStore, n u khơng có RecordStore tr v null ỗ ủ ế ả ề

 Ví d :ụ

public void deleteRecStore() {

if (RecordStore.listRecordStores() != null){ try {

RecordStore.deleteRecordStore(REC_STORE); }

catch (Exception e) {

db(e.toString()); }

(6)

29 Searching with RecordFilter –

Searching with RecordFilter – SearchStreamsSearchStreams (2) (2)

 public void writeTestData() {

String[] names = {"Lan : Lop C04 CNTT HVCNBCVT", "Thu : K45 CNTT Dai Hoc Bach Khoa HN",

"Hoai Anh : K39 QTDN Truong Kinh Te Quoc Dan",

"Yen Chi : Lop Anh Ngu Truong Dai Hoc Ngoai Ngu HN"}; boolean[] sex = {true, false, true, true};

int[] rank = {3, 0, 1, 2};

writeStream(names, sex, rank); }

 private void searchRecordStore() {

try { // Record store is not empty

if (rs.getNumRecords() > 0) {// Setup the search filter with the user requested text SearchFilter search = new SearchFilter(tfFind.getString());

RecordEnumeration re =

rs.enumerateRecords(search, null, false);

(7)

30 Searching with RecordFilter –

Searching with RecordFilter – SearchStreamsSearchStreams (3) (3)

ByteArrayInputStream strmBytes = new ByteArrayInputStream(re.nextRecord());

DataInputStream strmDataType = new DataInputStream(strmBytes); // Read Java data types from the above byte array

siMatch.setText(strmDataType.readUTF()); // Show matching result in stringItem component on form

search.searchFilterClose(); // Close record filter strmBytes.close(); // Close stream

strmDataType.close(); // Close stream re.destroy(); // Free enumerator } } }

catch (Exception e) { db(e.toString()); }

Ngày đăng: 09/03/2021, 06:09

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w