
Генерація проксі-класів
Для генерації проксі-класів (проекцій) потрібно додати властивість Projection до визначення класу.
В такому випадку, при компіляції класу, Java Class Generator автоматично згенерує вихідні файли для проекції. Для генерації Java класів потрібно виконати наступні кроки:
Обрати пункт меню Class —> Add —> New Projection (рис. 3)
Рис. 3
У вікні зазначити ім’я проекції (рис. 4)
Рис. 4
Обрати тип проекції (рис. 5)
Зазначити параметр ROOTDIR – папка, в яку будуть зберігатися вихідні файли для проекції
В класі з’явиться наступне визначення:
Projection LibraryProjection As %Projection.Java
(ROOTDIR = "M:\Program\JavaCacheSample\src\javacachesample");
Рис. 5
Скомпілювати класи за допомогою меню Build —> Compile
Генератор створить вихідний Java код у папці зазначеній у параметрі ROOTDIR
Додати отримані класи до Java проекту (або папку з ними до Classpath) та скомпілювати проект.
Окрім цього, якщо у БД є властивості-відношення, списки або масиви, то можна прямо вказати якого типу повинні бути ці властивості у Java. Для цього можна модифікувати код Caché класу або змінити параметри в інспекторі об’єктів:
Relationship PhoneNumbers As JavaTutorial.PhoneNumber (JAVATYPE = "java.util.Map")
[ Cardinality = children, Inverse = Contact ];
Рекомендовані типи наведені в таблиці 1.
Таблиця 1
Тип колекції |
Java тип |
Array
|
java.util.Map |
List
|
java.util.List |
Підключення до бд
Є два типи підключень до БД 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());}