Я хочу создать простое приложение CRUD, чтобы проверить возможности обработки данных Blackberry.Как использовать хранилище постоянных объектов в Blackberry?
Как создать простую функцию сохранения?
Я хочу создать простое приложение CRUD, чтобы проверить возможности обработки данных Blackberry.Как использовать хранилище постоянных объектов в Blackberry?
Как создать простую функцию сохранения?
В этом примере я храню вектор в постоянном хранилище.
Вы должны придумать идентификатор магазина, который должен иметь тип 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.
Пример загрузки Vector из магазина:
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();
Если вы хотите совершить изменения (ака save изменения на диске), вам нужно повторить две нижние строки. setContents (OBJ); и Commit().
Вы можете хранить следующие без необходимости делать что-нибудь особенное:
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
Чтобы сохранить свои собственные классы, они (и все суб-классы) должны осуществлять «Persistable "интерфейс. Я рекомендую вам это сделать, поскольку эти хранилища автоматически очищаются при удалении приложения. Это связано с тем, что ОС очищает сохраненные объекты вверх, когда «любое» ссылочное имя класса в хранилище больше не имеет связанного с ним приложения. Поэтому, если ваш магазин использует только строки, он никогда не будет очищен.