You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15Lines changed: 15 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -306,12 +306,27 @@ Oracle является разработчиком языка и предост
306
306
2. H2 — наиболее популярная in memory СУБД, хорошо подойдет для твоих небольших проектов;
307
307
3. MongoDB — популярная NoSQL СУБД
308
308
309
+
Читать многотомные руководства по ним не требуется. Достаточно знать как установить и как заглянуть внутрь табличек.
310
+
309
311
##### JDBC
310
312
313
+
Итак, у тебя появилась база данных, теперь ты хочешь трогать её данные прямо из своего уютного кода. Тут на помощь прийдет добрый дедушка JDBC. JDBC — это такое относительно низкоуровневое API (довольно старое, но супер надежное), которое предоставляет тебе возможность работать с твоей базой данной прямо из кода. Открываешь соединения, пишешь ручками запросы, отправляешь запрос на исполнение, получаешь выборку с результатами. Получается много кода, куча лапши `try-catch`, зато весьма производительно и гибко. В современном мире люди обычно пользуются инструментами более высокого уровня, типа Spring Data, но не стоит забывать наши корни. Поэтому ознакомься на досуге с бесплатным руководством Oracle: [JDBC Basics](https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html)
314
+
311
315
#### ORM
312
316
317
+
Если ты ещё не задумывался о философских вопросах, то сейчас самое время. Вот живут у тебя таблицы в базе данных, связанные между собой в забавные клубки и в ус не дуют. И с другой стороны баррикад, ты разработчик с горящими глазами, и ворохом Java классов в твоем проекте. И хочешь ты чтобы написал ты SQL запрос и получил в ответ набор `List<MyObject>`, а не JDBC выборку, обрабатывая которую руками, приходится создавать объекты и кастовать типы направо и налево, как заправский колдун.
318
+
319
+
Такие страдания испытал не ты первый, по этому умные люди собрались и придумали концепцию ORM. Основной смысл ORM в том, чтобы взять на себя тяжелую работу по преобразованию твоих Java типов в типы базы данных. Ты как разработчик аннотируешь свои классы оставляя подсказки для фреймворка какие типы ты хочешь получить, а потом просто пользуешься обычными методами. Нажал `save(ListWithMyObjects)`, а он сам как по волшебству, превратился в SQL запрос и обновил данные.
320
+
321
+
Звучит слишком хорошо, чтобы быть правдой, не так ли? Так и есть. Правильная готовка ORM это настоящая головная боль и балансирование на острие ножа, но тебе придется к этому прикоснуться.
322
+
313
323
##### Hibernate
314
324
325
+
Он же просто хибер. Самый популярный Java фреймворк, предназначенный для решения ORM задач. Море возможностей, море подводных камней, море страданий. Профессиально его готовить мало кто умеет, но приобщиться надо. Материалов по нему велико множество, но обрати внимание на эти:
326
+
327
+
- Один из самых известных Hibernate профессионалов, Vlad Mihalcea, ведет уютный [сайтик](https://vladmihalcea.com/tutorials/hibernate/) в котором содержатся десятки полезных статей, ответов на вопросы и обзоры подводных камней. Подпишись, читай, приобщайся. Когда у тебя на проекте выстрелит проблема по хиберу, Влад может прийти на помощь;
328
+
- Бауэр, Кинг, Грегори. Java Persistence API и Hibernate. Одновременно является и справочником и руководством. Написана тяжело, читается тяжело, но достаточно объемно покрывает необходимые темы. Читать, возможно, придется в несколько заходов, но лучше осилить.
329
+
315
330
### Spring
316
331
317
332
Спринг — это самая популярная веб-экосистема в Java. Состоит из целого набора различных фреймворков, разного назначения: работа с БД, облаками, безопасностью, и многое другое. Да, у него есть менее популярные альтернативы, но с высокой долей вероятности, на работе ты столкнешься именно с ним. Так что добро пожаловать в весну.
0 commit comments