如何使用Blackberry中的持久对象存储?
我想创建一个简单的CRUD应用程序来测试黑莓的数据处理能力如何使用Blackberry中的持久对象存储?,blackberry,persistent-object-store,Blackberry,Persistent Object Store,我想创建一个简单的CRUD应用程序来测试黑莓的数据处理能力 如何创建一个简单的保存函数?在本例中,我将在持久存储中存储一个向量 你必须拿出一个商店ID,它应该是long类型。我通常通过将完全限定的应用程序的类名与某个字符串相关联来创建它,使其在我的应用程序中具有唯一性 //class Fields... //Use the application fully qualified name so that you don't have store collisions. static Strin
如何创建一个简单的保存函数?在本例中,我将在持久存储中存储一个向量 你必须拿出一个商店ID,它应该是long类型。我通常通过将完全限定的应用程序的类名与某个字符串相关联来创建它,使其在我的应用程序中具有唯一性
//class Fields...
//Use the application fully qualified name so that you don't have store collisions.
static String ApplicaitonID = Application.getApplication().getClass().getName();
static String STORE_NAME = "myTestStore_V1";
long storeId = StringUtilities.stringHashToLong( ApplicationID + STORE_NAME );
private static PersistentObject myStoredObject;
private static ContentProtectedVector myObjects;
//End class fields.
从存储加载向量的示例:
myStoredObject = PersistentStore.getPersistentObject( storeId );
myObjects = (ContentProtectedVector) myStoredObject.getContents();
//Print the number of objects in storeage:
System.out.println( myObjects.size() );
//Insert an element and update the store on "disk"...
myObjects.addElement( "New String" );
myStoredObject.setContents(myObjects);
myStoredObject.commit();
初始化此存储并首次将其保存到磁盘的示例:
myStoredObject = PersistentStore.getPersistentObject( storeId );
myObjects = (ContentProtectedVector) myStoredObject.getContents();
if(myObjects == null)
myObjects = new ContentProtectedVector();
myStoredObject.setContents(myObjects);
myStoredObject.commit();
如果要提交更改(也称为将更改保存到磁盘),则需要重复下面两行。setContents(OBJ);和提交()
您可以存储以下内容,而无需执行任何特殊操作:
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.Integer
java.lang.Long
java.lang.Object
java.lang.Short
java.lang.String
java.util.Vector
java.util.Hashtable
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.Integer
java.lang.Long
java.lang.Object
java.lang.Short
java.lang.String
java.util.Vector
java.util.Hashtable
@见:
要存储您自己的类,它们(以及所有子类)必须实现“持久化”接口。我建议您这样做,因为卸载应用程序时,这些存储会自动清理。这是因为当存储中的“任何”引用类名不再有与之关联的应用程序时,操作系统会清理存储的对象。所以,如果你的商店只使用字符串,它永远不会得到清理 在本例中,我将向量存储在持久存储中 你必须拿出一个商店ID,它应该是long类型。我通常通过将完全限定的应用程序的类名与某个字符串相关联来创建它,使其在我的应用程序中具有唯一性
//class Fields...
//Use the application fully qualified name so that you don't have store collisions.
static String ApplicaitonID = Application.getApplication().getClass().getName();
static String STORE_NAME = "myTestStore_V1";
long storeId = StringUtilities.stringHashToLong( ApplicationID + STORE_NAME );
private static PersistentObject myStoredObject;
private static ContentProtectedVector myObjects;
//End class fields.
从存储加载向量的示例:
myStoredObject = PersistentStore.getPersistentObject( storeId );
myObjects = (ContentProtectedVector) myStoredObject.getContents();
//Print the number of objects in storeage:
System.out.println( myObjects.size() );
//Insert an element and update the store on "disk"...
myObjects.addElement( "New String" );
myStoredObject.setContents(myObjects);
myStoredObject.commit();
初始化此存储并首次将其保存到磁盘的示例:
myStoredObject = PersistentStore.getPersistentObject( storeId );
myObjects = (ContentProtectedVector) myStoredObject.getContents();
if(myObjects == null)
myObjects = new ContentProtectedVector();
myStoredObject.setContents(myObjects);
myStoredObject.commit();
如果要提交更改(也称为将更改保存到磁盘),则需要重复下面两行。setContents(OBJ);和提交()
您可以存储以下内容,而无需执行任何特殊操作:
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.Integer
java.lang.Long
java.lang.Object
java.lang.Short
java.lang.String
java.util.Vector
java.util.Hashtable
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.Integer
java.lang.Long
java.lang.Object
java.lang.Short
java.lang.String
java.util.Vector
java.util.Hashtable
@见:
要存储您自己的类,它们(以及所有子类)必须实现“持久化”接口。我建议您这样做,因为卸载应用程序时,这些存储会自动清理。这是因为当存储中的“任何”引用类名不再有与之关联的应用程序时,操作系统会清理存储的对象。所以,如果你的商店只使用字符串,它永远不会得到清理