這是我第一篇文章,希望不是太糟 RMS好比是手機(jī)上的數(shù)據(jù)庫系統(tǒng),如果要持久保存數(shù)據(jù),RMS是非常必要 先來點概念: Record Management System是J2ME的一個重要的子系統(tǒng),目的是實現(xiàn)應(yīng)用程序本地數(shù)據(jù)的持久性存儲。目前支持文件系統(tǒng)的移動信息設(shè)備還有限,因此Record Management System是J2ME開發(fā)人員實現(xiàn)本地數(shù)據(jù)存儲的首選途徑。本文的目的就是全面的介紹Record Management System的知識。 上面這段是這里抄的===http://tech.ccidnet.com/pub/article/c1131_a208143_p1.html=== 下面來點自己對RMS的理解: 1:rs=RecordStore.openRecordStore(“RMSNAME”,true);以此打開RMS,建立也是同個語句,ture以此標(biāo)志是否在RMS不存在時是否建立,并打開,否則為FALSE時,當(dāng)不存在這個RMS會出現(xiàn)NOTFOUND的異常 2,一個KVM上只能運(yùn)行同名的RMS一個,如果多個,可能會出現(xiàn)異常,,就是如果我在一個SUIT里用了RMS1,如果在另個SUIT上也用RMS1,就出先很多異常不到的錯誤,比如,保存的記錄在下次打開時可能就丟失了。所以最好不要重名,名為RMS2吧 3,MIDP1.0是不支持同個SUIT里,RMS共享的,在2.0是支持的,呵呵,對與這點所有的資料是這么說的,我能向來是在2。0里用RMS,所以也沒實際碰到 4,對于添加RMS里方法我不多說,ADDRECORD()就添加了一條記錄 5,刪除也一樣,DELETERECORD(),不過我要說明的一點是,刪除并不是直接釋放了空間,而是做了個標(biāo)記,可以被后面的用。 6,最重要的我要講述的是更新,要跟標(biāo)準(zhǔn)的數(shù)據(jù)庫一樣,沒UPDATA總感覺少了點,我自己的想法是要想法是如果要刷新,用SETRECORD(ID,BYTE[],LENGTH)這個方法,關(guān)鍵是得到ID,而這個RMS,討厭的就是沒獲得當(dāng)前ID的方法,有的只是GETNEXTSOCORDID(),有人會說那不是一樣“-1”不就得了,可實際上因為你有可能對RMS做刪除處理,就有可能ID 是不連續(xù)的,那么ID-1也不一定是當(dāng)前ID,,,怎么辦呢,我的想法是以ID為循環(huán)條件,遍歷RMS,找到了需要的KEY就記錄該ID,,同樣會出現(xiàn)有ID內(nèi)容被刪的情況,有INVALID的異常,此時只要CONTINUE跳過就行了,MINGJAVA大哥與我交流時說了另一個方法,就是建立INDEX,一個KEY與一個ID配對,這樣也能找到需要的ID,我雖然沒去實現(xiàn)過他的方法,不過我覺得他的方法會比我的高效點,因為我把讀RMS和尋找放在一起,如果數(shù)據(jù)多的話,會很恐怖的,而建立INDEX的話,可以獨立出來做,這樣雖然數(shù)據(jù)多也會稍微輕松點。。。 7,RMS還有枚舉和排序,如同標(biāo)準(zhǔn)數(shù)據(jù)哭的WHERE,和ORDER BY,照著模式套好了,我也就不多說了 以上是我對RMS的一點想法,僅僅是我的,可能有些方面說的不是很對,歡迎喜歡J2ME的朋友多聯(lián)系交流多扔臭雞蛋西紅柿。。。歡迎! QQ:44694289(注名是這里的朋友吧,閑聊就不了) EMAIL:qxbnit@hotmail.com |