Java.Scripting Data Base
Материал из Hivext Wiki
Java - База данных
Рассмотрен пример взаимодействия с базой данных через сервис Структур.
/*
Название: DataBaseSample
Описание: Пример работы с базой данных.
*/
import java.util.Map;
import java.util.HashMap;
public class DataBaseSample {
public static void main(String[] args) {
String sAppid = hivext.local.GetParam("appid"); // Получаем идентификатор нашего приложения.
String sLocalSignature = hivext.local.GetDeviceSignature(); // Получаем локальную подпись.
/*
Создадим тип данных Message, в котором будем хранить информацию.
Типы данных можно создавать "налету" программно или заранее через Hive IDE или API Console.
В примере рассмотрим программное создание типа с помощью метода DefineType.
*/
// Подготовим тип данных.
Map MessageType = new HashMap();
MessageType.put("sTitle", "string(256)"); // Название записи.
MessageType.put("sText", "text"); // Содержание записи.
MessageType.put("CreateDate", "date"); // Дата создания записи.
MessageType.put("sAuthor", "string(64)"); // Имя автора.
// Преобразовываем объект в JSON формат.
String jsMsgT = (String)hivext.local.utils.toJSON(MessageType);
// Создадим тип данных.
Response oResponse = hivext.data.base.DefineType(sAppid, sLocalSignature, "Message", jsMsgT);
// 0 - тип создан успешно, 1002 - тип уже создан.
if(oResponse.getResult() == 0 || oResponse.getResult() == 1002) {
// Создадим объект.
Map Message = new HashMap();
Message.put("sTitle", "Hello world");
Message.put("sText", "This is my message to the world!");
Message.put("sAuthor", "Tenshi");
String jsMsg = (String)hivext.local.utils.toJSON(Message);
oResponse = hivext.data.base.CreateObject(sAppid, sLocalSignature, "Message", jsMsg);
if(oResponse.getResult() == 0) { // Объект создан успешно.
// Покажем идентификатор только что созданного объекта.
hivext.local.ReturnResult(oResponse.get("id"));
} else { /* Ошибка при создании объекта. */ }
} else { /* Ошибка при создании типа. */ }
}
}
/*
Название: DataBaseSample 2
Описание: Пример работы с базой данных. Запрос объектов из базы и вывод в поток.
*/
import org.json.JSONObject;
public class DataBaseSample2 {
public static void main(String[] args) throws Exception {
String appid = hivext.local.GetParam("appid");
String signature = hivext.local.GetDeviceSignature();
// Запрашиваем объекты Message из базы данных.
Response messages = hivext.data.base.GetObjects(appid, signature, "Message");
if(messages.getResult() == 0) {
JSONObject[] objects = (JSONObject[])messages.get("objects");
for(int i=0; i<objects.length; i++) {
String out = "id = " + objects[i].get("id")
+ "\nsTitle = " + objects[i].get("sTitle")
+ "\nsText = " + objects[i].get("sText") + "\n";
hivext.local.out.Write(out);
}
}
}
}
