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);

            }
        }
    }
}​

Следующие примеры

Личные инструменты