Что такое Maven. Что такое Maven Для чего он нужен Как добавлять в проект библиотеки без него
Скачать 76.02 Kb.
|
Что такое Maven? Для чего он нужен? Как добавлять в проект библиотеки без него? Сборщик проекта, помогает управлять жизненным циклом приложения и подключаемыми библиотеками. Предоставляет унифицированную структуру проекта, что помогает работать в команде. Компилирует код, производит тесты. Чтобы добавить библиотеку без Maven нужно выкачать jar и подключить через интерфейс IDE. Также можно указать classpath для компилятора или положить в папку lib JDK. Как добавить dependency в Maven? Для чего они нужны? Откуда они скачиваются? Зависимости скачиваются из центрального репозитория Maven, если их нет в локальном репозитории. Если их нет в центральном репозитории и определен удаленный репозиторий, то поиск будет произведен там. Чтобы добавить dependency нужно в узле dependencies создать узел dependency указать группу, артефакт и версию. Их можно найти на сайте репозитория. Основные фазы проекта под управлением Maven? Validate, initialize, -sources, compile, -test-sources, test-compile, test, package, verify, install, deploy. Что такое JDBC? Какие классы/интерфейсы относятся к JDBC? JDBC – это API который позволяет Java связываться с базами данных через соответствующий драйвер. Включает в себя следующие классы: DriverManager, Driver, Connection, Statement, ResultSet, SQLException. Для чего нужен DriverManager? Оперирует драйверами и отдаёт соединение с базой нам для использования. Что такое Statement, PreparedStatement, CallableStatement? Интерфейсы, которые дают возможность производить операции с базой данных. Отличия в том, что Statement – без параметров, а Prepared с параметрами. Callable – нужен для произведения OUT и INOUT операций. Execute – позволяет выполнить sql запрос, возвращает true если, можно получить resultSet. ExecuteUpdate – возвращает количество столбцов? ExecuteQuery – возвращает ResultSet. Для Prepare + executeQuery нам нужно проставить параметры на места вопросов, при помощи метода setXXX для которого мы указываем индекс начиная с 1 и параметр. Что такое sql-injection? Уязвимость, которую может использовать злоумышленник для получения данных из базы. Делается это при помощи подстановки sql логических, объединяющих, временных выражений вместо параметра. Чтобы избежать этого надо использовать PrepareStatement, в таком случае JDBC позаботится об этом. Что такое ResultSet? Как с ним работать? Это множество результатов, похожее на Iterable. При создании ResultSet мы можем указать его тип, определяющий направление прохода по нему и чувствительность к изменениям, а также указать возможность менять данные в базы. Методы для обхода похожи на Iterable: next, previous, first, last. Получать данные можно по названию столбца или индексу getXXX. Рассказать про паттерн DAO. Паттерн, который позволяет инкапсулировать все взаимодействия с базой данных. Также даёт возможность реализовать несколько вариантов классов для подключения к разным типам баз данных. Что такое JPA? Java Persistence API – спецификация концепции ORM. Что такое ORM? Object Relation Mapping – концепция, которая описывает взаимодействие со строками базы как с объектами. А также построение необходимых связей. Что такое Hibernate? Фреймворк для работы с базами данных. Реализует спецификацию JPA. В чем разница между JPA и Hibernate? Как связаны все эти понятия? JPA – это спецификация, а Hibernate – это реализация этой спецификации. Является самой популярной. Какие классы/интерфейсы относятся к JPA/Hibernate? EntityManager -> HibernateEntityManger -> Session EntityManagerFactory -> HibernateEntityMangerFactory -> SessionFactory EntityTransaction -> Transaction CriteriaQuery из persistence Query, Configuration Основные аннотации Hibernate, рассказать. Entity – указывает на то, что этот класс является сущностью для сопоставления со строками в базе. Table – позволяет указать имя таблицы в которой лежат сущности. Id, GeneratedValue, Column, OneToOne, OneToMany, ManyToOne, ManyToMany. Чем HQL отличается от SQL? SQL манипулирует данными в базе, а Hibernate Query Language манипулирует объектами. По сути, это объектно-ориентированный QL. Поддерживает полиморфизм, наследование. Что такое Query? Как передать в объект Query параметры? Интерфейс для работы с HQL. Параметры передаются при помощи метода setParameter и setParameterList. Получается методом Session.createQuery. Итерируемый. Можно ограничить вывод при помощи setMaxResult, setFirstResult. Выполняется методом executeUpdate. Какие можно устанавливать параметры в hbm2ddl, рассказать про каждый из них. Регулирует работу с таблицами при создании sessionFactory. Create – каждый раз создает новую схему, create-drop – тоже самое, только если явно закрыть SessionFactory, validate, update, drop – удалить и создать базу? Если ничего не указать, то будет update-create. Требования JPA к Entity-классам? Не менее пяти. Аннотация @Entity, конструктор по умолчанию, первичный ключ, обращение к полям только через геттеры и сеттеры, нет финальных полей и методов участвующих в маппинге, не должен быть вложенным классом, не должен быть финальным, не должен быть интерфейсом или енумом. Жизненный цикл Entity в Hibernate? Рассказать. Контекст постоянства живёт в рамках сессии. Если мы создаем объект, то он транзиент, пока мы его не не save. Если мы получили объект из базы, то он персистентс, но мы можем его задетачить evict или close, а задетаченный мы можем update или save для persistence снова. Если remove то в мусор. |