Статьи Утилиты Telegram YouTube VK Видео RuTube Отзывы

Статьи с тэгом «Java»

Коллекции: очередь и стек

16 апреля 2019

Тэги: Collections, Java.

Очередь реализует принцип "first in - first out", т.е. "первым пришёл - первым ушёл". Стек реализует принцип "last in - first out", т.е. "последним пришёл - первым вышел". Аналогия из реального мира - это стопка книг на столе (сначала берём верхнюю).
Читать полностью...

CrudRepository в Spring Data

26 мая 2018

Тэги: PostgreSQL, Spring Boot, rest, Hibernate, Spring Data, Java.

В статье Hibernate и Spring Boot мы рассматривали использование Hibernate для того, чтобы не писать sql-запросы в слое доступа к данным. Сегодня мы пойдём ещё дальше и рассмотрим, как Spring Data может генерировать за вас сам слой доступа к данным со всеми методами, которые вам нужны в сервисном слое.

В качестве примера возьмём сущность «Страна» с её названием в качестве единственного параметра и на примере этой сущности шаг за шагом создадим все необходимые операции для поиска, добавления, редактирования и удаления этой сущности. В СУБД postgres надо создать следующую таблицу:

CREATE TABLE country
(
  id serial,
  name character varying(50) NOT NULL,
  CONSTRAINT country_id_pk PRIMARY KEY (id)
);

Теперь создадим типовой maven-проект и добавим в pom.xml необходимые зависимости. Полную версию файла можно посмотреть на github.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.12.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.2.2.jre7</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
</dependencies>

spring-boot-starter-web отвечает за обработку http-запросов, а spring-boot-starter-data-jpa предоставляет функционал доступа к данным. Также мы добавляем драйвер для работы с целевой СУБД.

Читать полностью...

Hibernate и Spring Boot

20 мая 2018

Тэги: Spring Boot, maven, PostgreSQL, rest, Java, Hibernate.

Hibernate скрывает от вас детали sql-запроса, что делает ваш код лёгким для понимания и не зависимым от реализации конкретной СУБД. Вы легко можете перейти с postgres на mysql или oracle, поменяв буквально пару строк кода в файле настроек.
Читать полностью...

Работа с датой в Spring Boot

11 мая 2018

Тэги: Spring Boot, Java, PostgreSQL.

Разбор работы с датой и временем в Spring Boot и Postgres: LocalDateTime, JSON-формат, Jackson, валидация, DAO-слой, RowMapper и REST-эндпоинты
Читать полностью...

Коллекции: list, set, map

7 мая 2018

Тэги: Java, Collections.

Под коллекциями в программировании подразумевают объекты, которые хранят внутри себя какой-либо набор значений и предоставляют набор методов для обращения к этим значениям. В Java можно выделить 3 наиболее часто используемых типа коллекций: списки (list), наборы (set) и словари (map).
Читать полностью...

Как получить параметры окружения

6 мая 2018

Тэги: Java.

Метод System.getProperties() возвращает список переменных окружения, которые доступны для данной виртуальной машины.
Читать полностью...

Создание runnable jar файла с помощью maven

2 мая 2018

Тэги: Java, maven, Apache.

Понятие runnable jar или uber jar возникает тогда, когда вы задумываетесь о разворачивании вашего проекта на удалённом сервере. У вас должна быть уверенность в том, что в произвольном окружении, где окажется ваше приложение, в classpath будут все необходимые классы из используемых вами библиотек.

Конечно, никакой проблемы нет, если вы вообще не используете сторонние библиотеки. Но я уверен, что всё-таки используете, если только ваш проект не «Hello World».

Чтобы гарантировать наличие нужных версий всех библиотек, нам проще поставлять их вместе с нашим приложением. Для удобства развёртывания все библиотеки можно поместить в один jar-файл. Подробнее о том, что такое jar-архив и как его получить, мы рассматривали в статье Как скомпилировать исходники java вручную.

Рассмотрим конкретный пример. Пусть имеется приложение, которое использует класс StringUtils из популярного проекта Apache Commons Lang:

package ru.devmark;

import org.apache.commons.lang3.StringUtils;

public class Main {

    public static void main(String[] args) {
        System.out.println(StringUtils.isBlank(""));
    }
}

В pom-файле нашего maven-проекта должно быть прописано следующее:

Читать полностью...

Как обменять значения двух переменных без буфера

1 мая 2018

Тэги: головоломки, Java, алгоритмы.

Если перед вами встанет задача обменять значения двух числовых переменных a и b между собой, вы можете создать временную переменную, чтобы сохранять промежуточный результат. Но как сделать это без создания лишней переменной? На помощь нам придёт математика.
Читать полностью...

Удобные методы работы с Map

28 апреля 2018

Тэги: Collections, Java.

В Java появился ряд новых удобных методов по работе с интерфейсом Map, которые позволяют выполнять рутинные операции буквально в одну строчку, используя лямбда-выражения.
Читать полностью...

Тестирование System.out.print в JUnit

27 апреля 2018

Тэги: JUnit, Java.

Предположим, у вас имеется метод, который вместо логов просто выводит какой-то текст через стандартный поток вывода и перед вами встаёт задача написать юнит-тест на то, что данный метод действительно выводит данную строку. Для тестирования будем использовать библиотеку JUnit.
Читать полностью...

❮ Назад Далее ❯