Файл: 1. Что такое Maven Для чего он нужен Как добавлять в проект библиотеки без него 2.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 420
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Хотя HQL и SQL имеют некоторые различия, оба языка могут использоваться для выполнения различных операций в базах данных. HQL обычно используется для выполнения операций над объектами Hibernate, а SQL - для выполнения операций над таблицами базы данных.
hibernate.hbm2ddl.auto: Определяет режим, в котором Hibernate должен выполнять обновления базы данных в соответствии с изменениями в сущностях. Доступные значения:validate: Hibernate проверяет соответствие между метаданными и схемой базы данных. Если метаданные не соответствуют схеме, Hibernate выдает исключение.update: Hibernate выполняет обновления в базе данных, чтобы соответствовать метаданным. Hibernate добавляет новые таблицы, колонки и ключи, но не удаляет старые элементы, которые не описаны в метаданных.create: Hibernate создает схему базы данных на основе метаданных. Если база данных уже существует, Hibernate удаляет ее и затем создает заново.create-drop: Hibernate создает схему базы данных на основе метаданных. По завершении работы, Hibernate удаляет всю базу данных.hibernate.hbm2ddl.import_files: Указывает список SQL-файлов, которые должны быть выполнены после создания схемы базы данных. Файлы могут содержать запросы для создания таблиц, добавления данных и т.д.hibernate.hbm2ddl.charset_name: Определяет название кодировки, используемой при генерации SQL-запросов hbm2ddl.hibernate.hbm2ddl.jdbc_metadata_extraction_strategy: Определяет стратегию, используемую Hibernate для извлечения метаданных из базы данных. Доступные значения:individually: Hibernate запросит метаданные для каждой таблицы по отдельности.grouped: Hibernate запросит метаданные для всех таблиц в одном запросе.hibernate.hbm2ddl.format_sql: Определяет, следует ли форматировать генерируемый SQL-код.hibernate.hbm2ddl.delimiter: Определяет разделитель для выполнения нескольких SQL-запросов.hibernate.hbm2ddl.schema_filter_provider: Определяет провайдер фильтров схемы, используемый для исключения определенных таблиц или столбцов из схемы базы данных.hibernate.hbm2ddl.temp.use_jdbc_metadata_defaults: Определяет, должен ли Hibernate использовать настройки JDBC-метаданных для создания таблицы.
JPA определяет ряд требований, которые должны быть выполнены в Entity-классах:
Обычно DAO и SERVICE слои работают вместе, чтобы обеспечить доступ к данным и бизнес-логику приложения. DAO слой обеспечивает доступ к данным, а SERVICE слой обрабатывает бизнес-логику, используя эти данные.Goal в Apache Maven - это задача или команда, которая выполняется во время сборки проекта. Goal может быть вызван явно при запуске Maven из командной строки, или он может быть частью фазы сборки.В Maven фаза сборки - это последовательность связанных goal'ов, которые выполняются в определенном порядке. Например, фаза сборки "package" включает goal'ы, которые компилируют исходный код, создают JAR-файл и т.д.Maven поставляется с набором предопределенных goal'ов, таких как compile, test, package и т.д. Однако, пользователь может определить свои собственные goal'ы для выполнения специфических задач, например, для выполнения тестового набора или сборки и установки дополнительных зависимостей.Goal в Maven обычно указывается в командной строке в формате "mvn :", где
- это фаза сборки, а - это goal, который нужно выполнить. Например, чтобы выполнить goal для сборки JAR-файла, необходимо запустить команду "mvn package".
____________________________________________________________________________
Scope (область видимости) зависимостей в Apache Maven - это параметр, который определяет, как зависимость будет использоваться в проекте и как будет управляться Maven. Scope указывается в файле pom.xml для каждой зависимости.
В Maven есть 6 различных областей видимости зависимостей:
compile - зависимость включается в проект во время компиляции, тестирования и выполнения.
provided - зависимость доступна во время компиляции и тестирования, но не включается в итоговый пакет, потому что она уже доступна в среде выполнения. Эта область видимости, например, может использоваться для зависимостей, которые поставляются с контейнером сервлетов.
runtime - зависимость необходима только во время выполнения, например, драйвер JDBC.
test - зависимость используется только во время тестирования, например, библиотека для написания тестов.
system - зависимость необходима для сборки проекта, но не может быть найдена в репозитории Maven. Вместо этого, разработчик должен явно указать путь к файлу JAR на своей системе.
import - эта область видимости используется только в файле pom.xml и указывает на зависимости, которые необходимы для импорта в текущий проект. Обычно, это зависимости из родительского проекта, которые нужны для сборки проекта-потомка.
Установка правильной области видимости для зависимости помогает уменьшить размер итогового пакета, ускорить сборку проекта и избежать конфликтов зависимостей.
____________________________________________________________________________
Plugin (плагин) в Apache Maven - это инструмент, который позволяет расширять функциональность Maven, добавляя новые goal'ы, фазы сборки и задачи.
Плагины используются для автоматизации задач, которые не входят в стандартный набор фаз и goal'ов Maven, например, для генерации кода, выполнения тестов, деплоя проекта и т.д.
Каждый плагин в Maven - это отдельный JAR-файл, который содержит свой собственный код, настройки и описания goal'ов. При использовании плагина, Maven автоматически загружает его из локального или удаленного репозитория и использует его в проекте.
Плагины в Maven могут быть использованы как в командной строке, так и в файле pom.xml. Чтобы использовать плагин в командной строке, нужно выполнить команду "mvn
:". Например, чтобы выполнить цель "compile" из плагина "maven-compiler-plugin", нужно выполнить команду "mvn compiler:compile".
____________________________________________________________________________
Аннотация @Table используется в JPA (Java Persistence API) для определения сопоставления класса с таблицей базы данных. В аннотации @Table можно указать несколько параметров:
name - имя таблицы, которая будет использоваться для хранения данных этого класса. По умолчанию, имя таблицы совпадает с именем класса.
schema - имя схемы базы данных, в которой должна быть создана таблица. Если схема не указана, используется значение по умолчанию.
catalog - имя каталога базы данных, в котором должна быть создана таблица. Если каталог не указан, используется значение по умолчанию.
uniqueConstraints - ограничения уникальности для таблицы. Этот параметр используется для указания ограничений, которые должны быть соблюдены при создании таблицы.
indexes - индексы для таблицы. Этот параметр используется для указания индексов, которые должны быть созданы для таблицы.
-
Что такое Query? Как передать в объект Query параметры?
-
Какие можно устанавливать параметры в hbm2ddl, рассказать про каждый из них.
hibernate.hbm2ddl.auto: Определяет режим, в котором Hibernate должен выполнять обновления базы данных в соответствии с изменениями в сущностях. Доступные значения:validate: Hibernate проверяет соответствие между метаданными и схемой базы данных. Если метаданные не соответствуют схеме, Hibernate выдает исключение.update: Hibernate выполняет обновления в базе данных, чтобы соответствовать метаданным. Hibernate добавляет новые таблицы, колонки и ключи, но не удаляет старые элементы, которые не описаны в метаданных.create: Hibernate создает схему базы данных на основе метаданных. Если база данных уже существует, Hibernate удаляет ее и затем создает заново.create-drop: Hibernate создает схему базы данных на основе метаданных. По завершении работы, Hibernate удаляет всю базу данных.hibernate.hbm2ddl.import_files: Указывает список SQL-файлов, которые должны быть выполнены после создания схемы базы данных. Файлы могут содержать запросы для создания таблиц, добавления данных и т.д.hibernate.hbm2ddl.charset_name: Определяет название кодировки, используемой при генерации SQL-запросов hbm2ddl.hibernate.hbm2ddl.jdbc_metadata_extraction_strategy: Определяет стратегию, используемую Hibernate для извлечения метаданных из базы данных. Доступные значения:individually: Hibernate запросит метаданные для каждой таблицы по отдельности.grouped: Hibernate запросит метаданные для всех таблиц в одном запросе.hibernate.hbm2ddl.format_sql: Определяет, следует ли форматировать генерируемый SQL-код.hibernate.hbm2ddl.delimiter: Определяет разделитель для выполнения нескольких SQL-запросов.hibernate.hbm2ddl.schema_filter_provider: Определяет провайдер фильтров схемы, используемый для исключения определенных таблиц или столбцов из схемы базы данных.hibernate.hbm2ddl.temp.use_jdbc_metadata_defaults: Определяет, должен ли Hibernate использовать настройки JDBC-метаданных для создания таблицы.
-
Требования JPA к Entity-классам? Не менее пяти.
-
Класс должен иметь публичный конструктор без аргументов. Это необходимо для того, чтобы JPA мог создавать новые экземпляры Entity-класса при чтении данных из базы данных. -
Класс должен быть помечен аннотацией @Entity. Это указывает JPA, что класс является сущностью, которую нужно сохранять в базу данных. -
Класс должен иметь уникальный идентификатор, который определяется аннотацией @Id. JPA использует идентификатор для уникальной идентификации сущности в базе данных. -
Класс должен иметь геттеры и сеттеры для всех его свойств, которые нужно сохранять в базу данных. JPA использует геттеры и сеттеры для получения и сохранения данных в базу данных. -
Класс должен быть сериализуемым, чтобы его можно было передавать между разными JVM.
-
Жизненный цикл Entity в Hibernate? Рассказать.
-
Transient (Непостоянное состояние): В этом состоянии объект еще не связан с сессией Hibernate и не имеет идентификатора. Он создается в памяти и не имеет связи с базой данных. -
Persistent (Постоянное состояние): В этом состоянии объект связан с сессией Hibernate и имеет идентификатор, который определяется базой данных. Изменения, внесенные в объект в этом состоянии, будут сохранены в базу данных. -
Detached (Отсоединенное состояние): В этом состоянии объект отсоединен от сессии Hibernate, но имеет идентификатор, который был присвоен ему при сохранении в базе данных. Изменения, внесенные в объект в этом состоянии, не будут сохранены в базу данных до тех пор, пока он не будет снова связан с сессией Hibernate. -
Removed (Удаленное состояние): В этом состоянии объект связан с сессией Hibernate, но помечен как удаленный. При синхронизации с базой данных объект будет удален.
Обычно DAO и SERVICE слои работают вместе, чтобы обеспечить доступ к данным и бизнес-логику приложения. DAO слой обеспечивает доступ к данным, а SERVICE слой обрабатывает бизнес-логику, используя эти данные.Goal в Apache Maven - это задача или команда, которая выполняется во время сборки проекта. Goal может быть вызван явно при запуске Maven из командной строки, или он может быть частью фазы сборки.В Maven фаза сборки - это последовательность связанных goal'ов, которые выполняются в определенном порядке. Например, фаза сборки "package" включает goal'ы, которые компилируют исходный код, создают JAR-файл и т.д.Maven поставляется с набором предопределенных goal'ов, таких как compile, test, package и т.д. Однако, пользователь может определить свои собственные goal'ы для выполнения специфических задач, например, для выполнения тестового набора или сборки и установки дополнительных зависимостей.Goal в Maven обычно указывается в командной строке в формате "mvn :
- это фаза сборки, а
____________________________________________________________________________
Scope (область видимости) зависимостей в Apache Maven - это параметр, который определяет, как зависимость будет использоваться в проекте и как будет управляться Maven. Scope указывается в файле pom.xml для каждой зависимости.
В Maven есть 6 различных областей видимости зависимостей:
compile - зависимость включается в проект во время компиляции, тестирования и выполнения.
provided - зависимость доступна во время компиляции и тестирования, но не включается в итоговый пакет, потому что она уже доступна в среде выполнения. Эта область видимости, например, может использоваться для зависимостей, которые поставляются с контейнером сервлетов.
runtime - зависимость необходима только во время выполнения, например, драйвер JDBC.
test - зависимость используется только во время тестирования, например, библиотека для написания тестов.
system - зависимость необходима для сборки проекта, но не может быть найдена в репозитории Maven. Вместо этого, разработчик должен явно указать путь к файлу JAR на своей системе.
import - эта область видимости используется только в файле pom.xml и указывает на зависимости, которые необходимы для импорта в текущий проект. Обычно, это зависимости из родительского проекта, которые нужны для сборки проекта-потомка.
Установка правильной области видимости для зависимости помогает уменьшить размер итогового пакета, ускорить сборку проекта и избежать конфликтов зависимостей.
____________________________________________________________________________
Plugin (плагин) в Apache Maven - это инструмент, который позволяет расширять функциональность Maven, добавляя новые goal'ы, фазы сборки и задачи.
Плагины используются для автоматизации задач, которые не входят в стандартный набор фаз и goal'ов Maven, например, для генерации кода, выполнения тестов, деплоя проекта и т.д.
Каждый плагин в Maven - это отдельный JAR-файл, который содержит свой собственный код, настройки и описания goal'ов. При использовании плагина, Maven автоматически загружает его из локального или удаленного репозитория и использует его в проекте.
Плагины в Maven могут быть использованы как в командной строке, так и в файле pom.xml. Чтобы использовать плагин в командной строке, нужно выполнить команду "mvn
:
____________________________________________________________________________
Аннотация @Table используется в JPA (Java Persistence API) для определения сопоставления класса с таблицей базы данных. В аннотации @Table можно указать несколько параметров:
name - имя таблицы, которая будет использоваться для хранения данных этого класса. По умолчанию, имя таблицы совпадает с именем класса.
schema - имя схемы базы данных, в которой должна быть создана таблица. Если схема не указана, используется значение по умолчанию.
catalog - имя каталога базы данных, в котором должна быть создана таблица. Если каталог не указан, используется значение по умолчанию.
uniqueConstraints - ограничения уникальности для таблицы. Этот параметр используется для указания ограничений, которые должны быть соблюдены при создании таблицы.
indexes - индексы для таблицы. Этот параметр используется для указания индексов, которые должны быть созданы для таблицы.