ИнтелДжей Ам ту ди туо (Any2dto)
В высококачественной гибкой разработке использование строгих типов и ограничение данных являются преимуществом при рефакторинге кода и изменении модели данных.
К сожалению, в большинстве проектов уровень доступа к базе данных (DAL) нарушает эту передовую практику, а именно:
Плагин Any2Dto может генерировать DTO с точными полями строгих типов на основе запросов к базе данных или Java-кода.
Использование
Рекомендуется использовать статические внутренние классы в качестве DTO в сервисах, чтобы ограничить их использование вне сервиса. Преобразование DTO можно сгенерировать с помощью шаблона live от Wings, используя MapStruct.
На основе именования PSI будет использоваться выбранное выражение, а не имя во время выполнения.
В редакторе Java выберите поля Jooq для генерации DTO соответствующего строгого типа.
Именование на основе PSI использует выбранное выражение, а не оценку во время выполнения.
SysSchemaJournal t = SysSchemaJournal.SYS_SCHEMA_JOURNAL;
Field<Integer> count = count(t.COMMIT_ID).as("cnt");
Field<BigDecimal> par = DSL.field("1", BigDecimal.class);
val result = dsl.select(
count, // <== private Integer count;
par, // <== private BigDecimal par;
t.CREATE_DT, // <== private LocalDateTime createDt;
max(t.MODIFY_DT), // <== private java.time.LocalDateTime modifyDt;
t.TABLE_NAME.as("tn"), // <== private java.lang.String tn;
t.COMMIT_ID.add(t.COMMIT_ID).as(t.COMMIT_ID) // <== java.lang.Long commitId;
)
Выберите таблицы или столбцы в окне инструментов базы данных (требуется плагин базы данных), чтобы сгенерировать DTO для всех выбранных полей. Обратите внимание, что иногда требуется изменить сопоставление типов SQL и Java или переименовать поля с одинаковыми именами.
Проверьте бизнес-результат SELECT в консоли базы данных (нужен плагин базы данных) и сгенерируйте DTO непосредственно для всех полей запроса. Обратите внимание, что обычно требуется изменить сопоставление SQL и Java или переименовать поля.
Выберите текст с особым форматом, сначала разделите его на строки по некоторым регулярным выражениям, затем разделите каждую строку на слова, возьмите два последних слова и сформируйте из них DTO.
Выберите SQL-SELECT и сгенерируйте код jooqDSL в стиле wings на панели буфера обмена. Поддерживаются только простые MySQL и Java. Для сложных SQL рекомендуется использовать jdbcTemplate, поскольку jooq — это не SQL, и цель использования jooq состоит в том, чтобы разделить сложные SQL.
Преобразуйте выбранный код в формат проверки Markdown.
Конфигурация
Конфигурация находится на уровне проекта, а не глобально. Нажмите «Загрузить по умолчанию», чтобы сбросить настройки плагина по умолчанию.
Настройки > Инструменты > Any2dto
Настройка
Генерируйте DTO из JooqDSL/базы данных/результата запроса/текста.
Куда сохранить — сохраните код DTO на панели буфера обмена или в файле Java;
Какой шаблон — внутренний класс или стандартный файл POJO;
Имя класса — по умолчанию Dto или каждый раз запрашивать;
Путь источника — при сохранении в файл Java . означает текущий проект;
Название пакета — имя пакета DTO, используемого во внешнем файле;
Разделитель строк — ... RegExp to split lines in selection
Word Separator — RegExp для разделения слов в каждой строке.
generate JooqDsl from SQL-select. support variables.
Комментарий начинается с #, и ведущие пробелы игнорируются. TYPE_NAME(PRECISION,SCALE) = JAVA_CLASS, одно правило на строку: — TYPE_NAME нечувствительны к регистру; — PRECISION и SCALE — цифры, 1–3 = [1,2,3], * = ANY; — (PRECISION, SCALE) следует опустить, если соответствует ANY; — для простого CHAR(1,)=CHAR(1); CHAR()=CHAR; порядок FIFO, верхние совпадения первыми, остановка при совпадении.
Движок шаблонов — Meepo (https://github.com/trydofor/pro.fessional.meepo), имеющий тот же синтаксис, что и целевой файл. Есть некоторые встроенные переменные:
Формат переменной и пример только для Sql2Dsl, а не Meepo:
Обычно использование сгенерированного Pojo для SELECT * — плохая практика. Лучше использовать SELECT ТОЛЬКО ТО, ЧТО ВАМ НУЖНО, и автоматически генерировать точный DTO.
Сгенерируйте код DTO по выбранному JavaCode, DbColumn, SqlResult, ValuedText.
Щелкните правой кнопкой мыши выделение в JavaEditor, SqlConsole или DatabaseView и выберите Any2Dto во всплывающих меню, после чего код DTO будет сгенерирован и скопирован в буфер обмена или пакет с предварительно настроенными правилами.
Для более подробного использования перейдите на страницу https://github.com/trydofor/intellij-any2dto/.
Откройте «Настройки» > «Плагины» и:
— используя встроенную систему плагинов IDE: «Marketplace» > «Поиск Any2dto» > «Установить плагин»; — вручную: загрузите последний выпуск и установите его вручную, используя «⚙️» > «Установите плагин с диска...»; — разработчик: git clone, clean, compile, buildPlugin / runIde / publishPlugin.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )