Главная страница
Навигация по странице:

  • Как добавлять в проект библиотеки без Maven

  • Как добавить dependency в Maven Обернуть нужный(е) dependency в тег dependencies в файле POMДля чего они нужны (зависимости)

  • Откуда они скачиваются (зависимости)

  • Какие классы/интерфейсы относятся к JDBC

  • Что такое PreparedStatement

  • Что такое CallableStatement CallableStatement используется для вызовов хранимых процедур; добавляет методы для манипуляции выходными параметрами.Что такое sql-injection

  • Что такое ResultSet Как с ним работать

  • Рассказать про паттерн DAO

  • В чем разница между JPA и Hibernate Как связаны все эти понятия

  • Какие классы/интерфейсы относятся к JPA/Hibernate

  • Основные аннотации Hibernate, рассказать

  • Чем HQL отличается от SQL

  • Что такое Query часть спецификации Java Persistence API (JPA).используется для написания запросов к сущностямКак передать в объект Query параметры

  • Какие можно устанавливать параметры в hbm2ddl, рассказать про каждый из них.

  • Требования JPA к Entity-классам Не менее пяти.

  • Жизненный цикл Entity в Hibernate Рассказать.

  • ло. Что такое Maven. Что такое Maven это инструмент для автоматизации сборки проектов на основе описания их структуры в файлах на языке pom, являющемся подмножеством xml. Три основных жц проекта (lifecycle)


    Скачать 29.61 Kb.
    НазваниеЧто такое Maven это инструмент для автоматизации сборки проектов на основе описания их структуры в файлах на языке pom, являющемся подмножеством xml. Три основных жц проекта (lifecycle)
    Дата13.12.2022
    Размер29.61 Kb.
    Формат файлаdocx
    Имя файлаЧто такое Maven.docx
    ТипОтчет
    #843078

    Что такое Maven
    это инструмент для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM, являющемся подмножеством XML.
    Три основных ЖЦ проекта (lifecycle)
    Clean (очистка), default or build (сборка), site (цикл формированя отчетов)
    Основные этапы (подциклы) (phase/фазы)


    1. clean
      фазы:
      - pre-clean
      - clean
      - post-clean

      2) default
      фазы:
      - validate — выполняется проверка, является ли структура проекта полной и правильной.
      - generate-sources
      - process-sources
      - generate-resources
      - process-resources

      - compile — компилируются исходные тексты
      - process-test-sources
      - process-test-resources

      - test-compiletest — собранный код тестируется заранее подготовленным набором тестов

      - package — упаковка откомпилированных классов и прочих ресурсов. Например, в JAR-файл

      - integration-test — программное обеспечение в целом или его крупные модули подвергаются интеграционному тестированию. Проверяется взаимодействие между составными частями программного продукта.

      - install — установка программного обеспечения в локальный Maven-репозиторий, чтобы сделать его доступным для других проектов текущего пользователя

      - deploy — стабильная версия программного обеспечения распространяется на удаленный Maven-репозиторий, чтобы сделать его доступным для других пользователей.

      3) site — жизненный цикл генерации проектной документации. Состоит из фаз:
      - pre-site
      - site
      - post-site
      - site-deploy



    Как добавлять в проект библиотеки без Maven?
    Вручную. cmd
    java -classpath ./classes ru.аuthor.libname.Main
    или если несколько
    java -classpath ./classes;./lib/l1-0.1.jar;./lib/l2-1.5.jar ru.аuthor.libname.Main

    где u.аuthor.libname.Main — наша библиотека
    Точкой перед «/» отмечают текущую директорию.
    Как добавить dependency в Maven?
    Обернуть нужный(е) dependency в тег dependencies в файле POM
    Для чего они нужны (зависимости)?
    Зависимости — это те библиотеки, которые непосредственно используются в вашем проекте для компиляции кода или его тестирования.
    Откуда они скачиваются (зависимости)?
    Из интерента (центрального репозитория), но можно указать репозиторий вручную где нужно указать,


    true



    false never


    repository.jboss.com

    Jboss Repository for Maven

    http://repository.jboss.com/maven2/

    default


    как пример
    Что такое JDBC?
    Промышленный стандарт взаимодействия Java-приложений с различными СУБД. Реализован в виде пакета java.sql, входящего в состав Java SE
    Какие классы/интерфейсы относятся к JDBC?
    К важнейшим классам JDBC API относятся: DriverManager, DataSource, Driver, Connection, Statement, PreparedStatement, ResultSet, SQLException.
    Для чего нужен DriverManager?
    Класс DriverManager является классом утилиты, управляющим JDBC-драйверами. Он содержит список зарегистрированных в системе JDBC-драйверов и устанавливает соединение с драйвером. Данный класс используется в основном для получения ссылки на объект Connection посредством метода getConnection.
    Что такое Statement?
    После установления соединения Connection с базой данных, оно может использоваться для выполнения SQL-запросов. Объект Statement создается методом Connection.createStatement
    Методы Statement
    executeQuery, executeUpdate, execute

    Метод executeQuery используется в запросах, результатом которых является один единственный набор значений, таких как запросов типа SELECT

    Метод executeUpdate следует использовать, как для выполнения операторов управления данными типа INSERT, UPDATE или DELETE, так и для операторов определения структуры базы данных CREATE TABLE, DROP TABLE

    Метод execute используется, когда операторы SQL возвращают более одного набора данных, более одного счетчика обновлений или и то, и другое. Такая возможность редко используется программистами.
    Что такое PreparedStatement?
    PreparedStatement представляет собой скомпилированную версию SQL-выражения, выполнение которого будет быстрее и эффективнее если нам нужно выполнить несколько похожих запросов

    пример:
    PreparedStatement statement = connection .prepareStatement("insert into user(id,name) values(?,?)");

    statement.setInt(1, 3);
    statement.setString(2, "fedya");
    statement.executeUpdate();
    Что такое CallableStatement?
    CallableStatement используется для вызовов хранимых процедур; добавляет методы для манипуляции выходными параметрами.
    Что такое sql-injection?
    это атака, во время которой вредоносный код вставляется в строки, которые позже будут переданы на экземпляр SQL Server для анализа и выполнения.
    Что такое ResultSet? Как с ним работать?
    Класс ResultSet представляет результирующий набор данных и обеспечивает приложению построчный доступ к результатам запросов. При обработке запроса ResultSet поддерживает указатель на текущую обрабатываемую строку.
    Доступ к данным ResultSet обеспечивает посредством набора get-методов, которые организуют доступ к колонкам текущей строки. Метод ResultSet.next используется для перемещения к следующей строке ResultSet, делая ее текущей.
    Методы ResultSet
    absolute(int row) - Метод перемещает курсор на заданное число строк от начала, если число положительно, и от конца - если отрицательно

    void afterLast() - Этот метод перемещает курсор в конец результирующего набора за последнюю строку

    void beforeFirst() - Этот метод перемещает курсор в начало результирующего набора перед первой строкой

    void deleteRow() - Удаляет текущую строку из результирующего набора и базы данных

    int getRow() - Возвращает номер текущей строки

    Statement getStatement() - Возвращает экземпляр Statement, который произвел данный результирующий набор

    boolean next() - позволяют переместиться в результирующем наборе на одну строку вперед или назад

    при использовании нужно отлавливать исключения вида SQLException
    Рассказать про паттерн DAO
    Data Access Object (DAO) — это такой паттерн проектирования. Смысл в том, чтобы создать специальную прослойку, которая будет отвечать исключительно за доступ к данным (работа с базой данных или другим механизмом хранения). Они соответствуют основным CRUD операциям (Create, Read, Update, Delete).
    Что такое JPA?
    Java Persistence API — спецификация API Java EE, предоставляет возможность сохранять в удобном виде Java-объекты в базе данных. Существует несколько реализаций этого интерфейса, одна из самых популярных использует для этого Hibernate. JPA реализует концепцию ORM.
    Что такое ORM?
    ORM — Object-Relational Mapping или в переводе на русский объектно-реляционное отображение. Это технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования. Если упростить, то ORM это связь Java объектов и записей в БД
    Что такое Hibernate?
    Это — одна из наиболее популярных реализаций ORM-модели.
    Он предоставляет фреймворк для сопоставления объектно-ориентированной модели предметной области с реляционной базой данных. Hibernate решает проблемы несоответствия объектно-реляционного импеданса, заменяя прямые постоянные обращения к базе данных высокоуровневыми функциями обработки объектов.

    В чем разница между JPA и Hibernate? Как связаны все эти понятия?
    JPA это спецификация, а Hibernate - это ORM фреймворк/библиотека, которая совместима с JPA. Как и в классическом ООП, класс, который реализует интерфейс, может иметь дополнительные методы/свойства, так и Hiberante имеет больше фичей чем JPA.

    Hibernate - это набор классов, которые реализуют JPA интерфейсы.
    Какие классы/интерфейсы относятся к JPA/Hibernate?
    EntityManagerFactory — это встроенный интерфейс JPA. Он может быть создан с помощью класса Persistence, указав название блока сохранения из файла .xml сохранения.
    EntityManagerFactory специфичен для базы данных. Итак, если вы хотите подключиться к другой базе данных, необходимо создать другой экземпляр EntityManagerFactory. EntityManagerFactory может быть использован для создания экземпляров EntityManager.

    EntityManager также является встроенным интерфейсом JPA. Он может быть создан с помощью экземпляра EntityManagerFactory.
    EntityManager представляет собой соединение базы данных. Вы можете использовать его для выполнения операций с базой данных, таких как вставка/обновление/удаление или запрос таблицы.

    EntityTransaction также является встроенным интерфейсом JPA. Он может быть создан с помощью EntityManager.
    Сделка EntityTransaction инкапсулирует транзакцию базы данных. Вызов к методу начала транзакции и вызов для совершения сохраняет изменения в базе данных.
    Основные аннотации Hibernate, рассказать
    @Entity
    Эта аннотация указывает Hibernate, что данный класс является сущностью (entity bean). Такой класс должен иметь конструктор по-умолчанию (пустой конструктор).
    Сущность является простым классом POJO.
    - Наличие публично доступного конструктора без аргументов
    - Класс, его методы и сохраняемые поля не должны быть final
    - Если объект Entity класса будет передаваться по значению как отдельный объект (detached object), например через удаленный интерфейс (through a remote interface), он так же должен реализовывать Serializable интерфейс.
    - Сохраняемые поля должны быть доступны только с использованием методов класса

    @Table
    С помощью этой аннотации мы говорим Hibernate, с какой именно таблицей необходимо связать (map) данный класс. Аннотация @Table имеет различные аттрибуты, с помощью которых мы можем указать имя таблицы, каталог, БД и уникальность столбцов в таблец БД.

    @Id
    С помощью аннотации @Id мы указываем первичный ключ (Primary Key) данного класса.

    @GeneratedValue
    Эта аннотация используется вместе с аннотацией @Id и определяет такие паметры, как strategy и generator

    @Column
    Аннотация @Column определяет к какому столбцу в таблице БД относится конкретное поле класса (аттрибут класса).

    @ManyToMany, @ManyToOne, OneToMany
    Диаграммы отношений сущностей, которая показывает связь "многие ко многим" между двумя сущностями
    Чем HQL отличается от SQL?
    HQL (Hibernate Query Language) - это объекто-ориентированный язык запросов, который очень похож на SQL. Главное различие языков HQL и SQL связано с тем, что SQL формирует запросы из наименований таблиц в базе данных и их столбцов, а HQL работает с сущностями (классами) и их полями (аттрибутами класса).

    HQL поддерживает такие понятия, как полиморфизм, наследование, ассоциация.
    Что такое Query?
    часть спецификации Java Persistence API (JPA).
    используется для написания запросов к сущностям
    Как передать в объект Query параметры?
    вызовом Session.createQuery ("...")
    Какие можно устанавливать параметры в hbm2ddl, рассказать про каждый из них.
    hibernate.hbm2ddl - узел конфигурации в hibernate.cfg.xml
    параметры которого прописываются в теге property завернутого в тег

    Пример:

    create
    Каждый раз, когда загружается спящий режим, последняя сгенерированная таблица будет удаляться, а затем новая таблица будет регенерирована в соответствии с классом вашей модели, даже если дважды не было изменений, это важная причина потери данных таблицы базы данных.

    create-drop
    Таблица создается в соответствии с классом модели каждый раз, когда загружается спящий режим, но таблица автоматически удаляется, как только sessionFactory закрывается.

    update
    Наиболее часто используемые атрибуты, структура таблицы будет автоматически установлена ​​в соответствии с классом модели при первой загрузке спящего режима (при условии, что сначала установлена ​​база данных), а структура таблицы будет автоматически обновляться в соответствии с классом модели, когда hibernate загружается позже, даже если структура таблицы изменится, структура таблицы «Строка все еще существует» не удалит предыдущую строку. Следует отметить, что при развертывании на сервере структура таблицы не будет установлена ​​сразу, это произойдет только после того, как приложение запустится в первый раз.

    validate
    Каждый раз, когда загружается спящий режим, структура таблицы базы данных проверяется, и только при сравнении с таблицей в базе данных новая таблица не будет создана, но будут вставлены новые значения.


    Требования JPA к Entity-классам? Не менее пяти.
    1) Entity класс должен быть отмечен аннотацией Entity или описан в XML файле конфигурации JPA

    2) Entity класс должен содержать public или protected конструктор без аргументов (он также может иметь конструкторы с аргументами),

    3) Entity класс должен быть классом верхнего уровня (toplevel class),

    4) Entity класс не может быть enum или интерфейсом,

    5) Entity класс не может быть финальным.
    Жизненный цикл Entity в Hibernate? Рассказать.
    У Entity объекта существует четыре статуса жизненного цикла: new, managed, detached, или removed. Их описание

    1) new — объект создан, но при этом ещё не имеет сгенерированных первичных ключей и пока ещё не сохранен в базе данных,

    2) managed — объект создан, управляется JPA, имеет сгенерированные первичные ключи,

    3) detached — объект был создан, но не управляется (или больше не управляется) JPA,

    4) removed — объект создан, управляется JPA, но будет удален после commit'a транзакции.


    написать администратору сайта