Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_Архітектура Caché Java Binding.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
359.42 Кб
Скачать
  1. Генерація проксі-класів

Для генерації проксі-класів (проекцій) потрібно додати властивість Projection до визначення класу.

В такому випадку, при компіляції класу, Java Class Generator автоматично згенерує вихідні файли для проекції. Для генерації Java класів потрібно виконати наступні кроки:

  1. Обрати пункт меню Class —> Add —> New Projection (рис. 3)

Рис. 3

  1. У вікні зазначити ім’я проекції (рис. 4)

Рис. 4

  1. Обрати тип проекції (рис. 5)

  2. Зазначити параметр ROOTDIR – папка, в яку будуть зберігатися вихідні файли для проекції

  3. В класі з’явиться наступне визначення:

Projection LibraryProjection As %Projection.Java

(ROOTDIR = "M:\Program\JavaCacheSample\src\javacachesample");

Рис. 5

  1. Скомпілювати класи за допомогою меню Build —> Compile 

  2. Генератор створить вихідний Java код у папці зазначеній у параметрі ROOTDIR

  3. Додати отримані класи до Java проекту (або папку з ними до Classpath) та скомпілювати проект.

Окрім цього, якщо у БД є властивості-відношення, списки або масиви, то можна прямо вказати якого типу повинні бути ці властивості у Java. Для цього можна модифікувати код Caché класу або змінити параметри в інспекторі об’єктів:

Relationship PhoneNumbers As JavaTutorial.PhoneNumber (JAVATYPE = "java.util.Map")

[ Cardinality = children, Inverse = Contact ];

Рекомендовані типи наведені в таблиці 1.

Таблиця 1

Тип колекції

Java тип

Array

  • %Library.ArrayOfDataTypes

  • %Library.ArrayOfObjects

java.util.Map

List

  • %Library.ListOfDataTypes

  • %Library.ListOfObjects

java.util.List

  1. Підключення до бд

Є два типи підключень до БД Caché:

  • Звичайне підключення:

    • підтримує усі види методів, як методи об’єктів, так і класів;

    • підтримує відкриття багатьох екземплярів одного об’єкта одночасно;

    • створюється використовуючи метод getDatabase класу com.intersys.objects.CacheDatabase.

  • Спрощене підключення:

    • працює швидше за звичайне підключення;

    • підтримує виконання методів класу;

    • підтримує виконання методів об’єктів, якщо вони збережені або є гетерами і сетерами;

    • не підтримує виконання методів об’єктів, що не являються збереженими або не є гетерами і сетерами;

    • не дозволяє відкривати більше одного екземпляру об’єкта;

    • створюється використовуючи метод getLightDatabase  класу com.intersys.objects.CacheDatabase.

Для підключення потрібно передати три параметри: адресу підключення (включаючи простір імен), ім’я користувача та пароль:

public static Database createConnection() throws CacheException {

String url="jdbc:Cache://localhost:1972/USER";

String username="_SYSTEM";

String pwd="SYS";

Database db = CacheDatabase.getDatabase(url, username, pwd);

return db;

}

Оскільки методи getLightDatabase та getDatabase можуть повертати виключення типу CacheException, його потрібно обробити:

catch (CacheException e){System.out.println(e.getMessage());}