cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

Уютное сообщество джавистов

Уютное сообщество джавистов - это хорошие материалы,задачки, туториалы для проверки знаний и обратная связь от соратников по изучению. @viktorreh

Show more
Advertising posts
2 207
Subscribers
-124 hours
-267 days
-8630 days

Data loading in progress...

Subscriber growth rate

Data loading in progress...

От JDBC до Spring Data: часть 1 Общение с базой данных связано с огромным количеством технологий — навскидку вспоминаем JDBC, JPA, Hibernate и Spring Data. Они тесно переплетены, и не всегда люди чётко понимают, что есть что и зачем нужно. В ближайших постах разложу по полочкам основные технологии по работе с данными. ❓Почему всё так сложно? Почему нельзя сохранить всё как есть? Приложение использует оперативную память и представляет данные в виде объектов. Можно работать с любым объектом в любой момент — чтение и запись происходят быстро. Минус оперативки — когда приложение завершается, память освобождается, и данные пропадают. Чтобы данные пережили приложение, они записываются в постоянную память. Хранением и организацией данных занимается БД. В оперативке данные лежат кое-как — где место нашлось, там объект и создаётся. В постоянной памяти данных много, всё упорядочено и оптимизировано. Поэтому модели данных в БД и приложении иногда отличаются. А ещё БД — это отдельное приложение. В итоге для сохранения/извлечения данных нужна куча дополнительной работы: 🔸 открыть соединение 🔸 составить SQL запрос 🔸 передать в запросе данные из приложения 🔸 преобразовать ответ БД в java объект 🔸 закрыть соединение JDBC — стандартные java методы, которые выполняют все пункты выше. Все инструменты по работе с БД под капотом используют как раз JDBC. Работа с соединениями и преобразование данных — утомительная работа. Поэтому и появляются библиотеки, облегчающие этот труд. Spring JDBC берёт на себя работу с соединениями. Разработчик всё так же составляет запросы, передаёт параметры и преобразует ответы в java объекты. ORM Object Relational Mapping — преобразование данных (mapping) из java объектов в сущности БД и обратно. Формально, ORM — просто название процесса. В случае JDBC весь ОRМ разработчик делает вручную. На практике под ORM подразумевают ORM библиотеку/фреймворк — какой-нибудь инструмент, который берёт на себя часть работы по запросам и преобразованию данных. Hibernate — самая популярная ORM библиотека. Составляет простые SQL запросы и преобразует данные. Упростил жизнь многим и заслужил их любовь❤️ В хибернейте не всё идеально: ▪️ Работа с соединениями (сессиями) остаётся на пользователе ▪️ Для корректной работы надо знать внутрянку (dirty session, как разруливаются отношения и тд). Сложно не признать, что Hibernate великолепен. Ворвался на олимп ORM библиотек в 2001 году и до сих пор оттуда не слезает🏆 JPA Сейчас большинство приложений базируются на спринге, но 10-15 лет назад приложения часто опирались на Java ЕЕ. В те года ORM Java ЕЕ выглядел сложно — для каждой сущности требовались несколько классов и кучка интерфейсов. Hibernate выглядел привлекательно, но нельзя просто взять и добавить библиотеку в проект. Во вселенной Java EE всё работает через спецификации — стандартные интерфейсы. Поэтому появилась новая спека по ORM — Java Persistence API или JPA. С небольшими отличиями почти полностью списана с хибернейта. Вскоре Hibernate подстроился под JPA и стал использоваться в Java EE. Итого ⭐️ JDBC — базовое API по работе с БД ⭐️ ORM — преобразование данных между приложением и БД. На практике под “у нас на проекте ORM” имеют в виду, что используется ORM библиотека, например, Hibernate ⭐️ JPA — спецификация по ORM. Набор интерфейсов, аннотаций и описание, как всё должно работать. Не включает в себя конкретную реализацию ⭐️ Hibernate — популярная ORM библиотека, реализующая JPA В следующем посте распишу вариации Spring Data, и почему материалы по хибернейт могут не соответствовать реальности. #полезное
Show all...
Using Entity Beans

Sun Microsystems, Inc. is delivering Sun ONE e-commerce software and enterprise solutions that enable companies to compete successfully in the Net Economy.

🔥 6👍 1 1😁 1
Photo unavailableShow in Telegram
👩‍💻 Интеграционные тесты с контекстом. Тестирование слоя репозиториев и сервисов. Ждём вас на втором занятии серии открытых практических уроков по тестированию Spring-приложений от OTUS: На вебинаре мы: - обсудим особенности тестирования компонентов Spring-приложения с подъемом тестового контекста; - рассмотрим, как можно протестировать слой репозиториев на базе JDBC и JPA, а также работу с транзакциями на сервисном слое; - ответим на все возникающие вопросы. Спикер — Senior Software Engineer и опытный преподаватель. Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Разработчик на Spring Framework». Все участники вебинара получат специальную цену на обучение! ➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок и получить запись предыдущего вебинара серии: https://vk.cc/cxZMkT Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Show all...
🥰 1
Photo unavailableShow in Telegram
💡Задача: Сумма вдоль столбцов Условие: дается квадратная матрица, необходимо вычислить минимальную сумму вдоль столбца. Есть условие на движение вдоль столбца есть ограничение: можно перемещаться на ячейку вниз лишь по диагонали или строго вниз. Пример: Ввод: matrix = [[2,1,3],[6,5,4],[7,8,9]] Вывод: 13 Объяснение: *во вложении Решение
Show all...
👍 2🎉 1
Photo unavailableShow in Telegram
🧑‍💻 Виды тестов. Основные инструменты и их использование Ждём вас на первом занятии серии открытых практических уроков по тестированию Spring-приложений от OTUS, где мы: - сделаем фокус на теории и основных инструментах тестирования Java-приложений; - обсудим, как сделать наше приложение тестируемым, какие тесты бывают и как для их написания использовать такие фреймворки и библиотеки как JUnit5, Mockito, AssertJ с учетом некоторых их особенностей и возможностей; - ответим на все возникающие вопросы. Спикер — Senior Software Engineer и опытный преподаватель. Встречаемся 24 июня в 20:00 мск в преддверии старта курса «Разработчик на Spring Framework». Все участники вебинара получат специальную цену на обучение! 8️⃣9️⃣🔟Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cxOPCH 🎁 Только до 23 июня скидка на курс 10%, подробности у наших менеджеров - просто оставь заявку. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Show all...
🚀 Юнит-тестирование вашей Java-архитектуры 🚀 @archtests - это мощная библиотека Java, которая позволяет писать модульные тесты для обеспечения соблюдения архитектурных ограничений и правил в вашем коде. https://archunit.org
Show all...
Unit test your Java architecture

Start enforcing your architecture within 30 minutes using the test setup you already have.

😁 1
Photo unavailableShow in Telegram
Надоела рутинная разработка? У нас для тебя кое-что есть… Приходи на открытый вебинар «Интерактивная разработка на языке Clojure». Спорим, после этого ты захочешь добавить его в свой стек? Встречаемся 30 мая в 20:00 мск. Дадим не только много крутой практической инфы, но и скидку на обучение. ➡️ Регистрируйся, чтобы не пропустить: https://vk.cc/cx3yLo Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Show all...
Подборка викторин по Java. Проверьте ваши знания вместе с qarocks.ru Викторина по Java перечислениям Enums Насколько хорошо вы знакомы с enum в Java? Давайте узнаем это с помощью викторины для начинающих! Викторина по регулярным выражениям Java RegEx Давайте проверим ваши знания о регулярных выражениях в Java! Викторина по массивам в Java Давайте проверим ваши знания о массивах в Java! Викторина по типу String в Java В этой викторине мы проверим ваши знания о строках в Java. Викторина по методам Java Давайте проверим ваши знания о методах в Java! Викторина по интерфейсам в Java Проверьте свои знания в интерфейсах на языке программирования Java с помощью нашей викторины. Викторина по строкам в Java Ответьте на вопросы нашей викторины, чтобы проверить свои знания по строкам на языке программирования Java. Викторина по наследованию в Java Проверьте свои знания в наследовании на языке программирования Java с нашей викториной! Викторина по массивам в Java Эта викторина из 10 вопросов поможет проверить ваши знания по массивам на языке программирования Java! Викторина по типам данных в Java Давайте проверим ваши знания и понимание различных типов данных в языке программирования Java. #викторины #подборка Надеемся на отличные результаты. Хорошего дня всем!
Show all...
Викторина по Java перечислениям Enums

Что такое enum (сокращение от "enumeration"), или перечисление, в Java Давайте узнаем это с помощью викторины для начинающих!

😁 2
Photo unavailableShow in Telegram
😁 10👎 1 1
Photo unavailableShow in Telegram
👩‍💻Как писать более чистый код на Java с помощью перегрузки методов? Перегрузка — очень мощная техника для случаев, когда нужно одинаковое имя метода с разными параметрами. Вместо того, чтобы дублировать имя метода и добавлять беспорядок в ваш код, вы можете просто перегрузить его. Это позволяет сохранять код чистым, а также снижает риск того, что дублирующие методы сломают часть системы. Как это провернуть? Расскажет опытный эксперт на открытом практическом уроке от OTUS! Встречаемся 26 апреля в 20:00 мск в преддверии старта курса «Углубленное изучение языка Java». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS! ➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cwlyGe Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Show all...
Photo unavailableShow in Telegram
Не забывайте вовремя обновляться
Show all...
😁 3
Choose a Different Plan

Your current plan allows analytics for only 5 channels. To get more, please choose a different plan.