Настроить ускорение без интерфейса?
Я только что узнал о Speedment, библиотеке OR/M на базе Java 8 Stream, и должен сказать, что мне нравится эта идея. Не нужно больше сумасшедших конфигураций или тратить время на просеивание 900 страниц документации Hibernation, чтобы найти правильный способ аннотировать мои классы: Speedment просто читает вашу базу данных, генерирует для вас классы Java и дает вам API на основе потоков для запуска операторов DDL против них. Злой круто.
Тем не менее, одним из главных препятствий является то, что вам кажется, что вы должны использовать Speedment UI для настройки соединения с БД. Кроме того, в документах не указано, как вы можете делать такие вещи, как:
- Укажите, для каких таблиц вы хотите сгенерировать код (возможно, в базе данных есть несколько таблиц, для которых вы не хотите создавать модели)
- Выполнить хранимые процедуры
- Настройте кэш в памяти
и т. д. Глядя на GitHub, я не могу понять, как код соединяется вместе из пользовательского интерфейса для создания объекта конфигурации. Просто интересно, есть ли способ настроить Speedment sans UI (возможно, через JSON или YAML), и если да, то какие конфигурации доступны.
1 ответ
Можно настроить Speedment без пользовательского интерфейса, но это требует некоторой обработки. По сути, для генерации кода из базы данных вам нужно вручную создать файл speedment.json и указать, из какой схемы нужно генерировать вручную.
- Создать новый проект Maven (
pom.xml
-файл иsrc/main/java
-directory). - Создать файл
/src/main/json/speedment.json
- Введите следующее:
{
"config" : {
"name" : "yourproject",
"packageName" : "com.yourcompany",
"packageLocation" : "src/main/java/",
"dbmses" : [{
"name" : "db0",
"typeName" : "MySQL",
"ipAddress" : "127.0.0.1",
"port" : 3306,
"schemas" : [{
"name" : "your_db_schema"
}]
}]
}
}
Запустите цель Maven:
mvn speedment:reload -Ddbms.username=root -Dbms.password=password
(с учетными данными для вашей базы данных)Наконец, запустите цель Maven:
mvn speedment:generate
Первая цель соединяется с базой данных и заполняет все недостающие детали конфигурации в файле.json. Вторая цель генерирует.java-код.
Чтобы отключить конкретную таблицу, установите для свойства json "enabled" значение false
, Вы также можете отключить отдельные столбцы таким образом.
Если вы хотите, вы можете теперь сконфигурировать генерацию непосредственно в.json-файле и затем восстановить.