Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
JDBC
Highest Rated
Rating: 4.8 out of 5(167 ratings)
466 students

JDBC

ConnectionPool, Transaction, DAO
Last updated 2/2023
Russian

What you'll learn

  • JDBC, ConnectionPool, Transactions, DAO

Course content

4 sections24 lectures4h 19m total length
  • Введение8:10

    Мы уже уверенно владеем Java и SQL, можем без проблем писать довольно сложные запросы к реляционным базам данных и программы. Но как же это мы могли бы делать из нашего Java приложения? Конечно же давно существует специальный для этого инструмент во всех современных языках программирования. В случае Java - это JDBC, которому мы посвятим целый небольшой курс. В первом видео более подробно разберем эту аббревиатуру и что она из себя представляет.

    Ссылка для скачивания среды разработки IntelliJ IDEA (лучше выбирать Ultimate): https://www.jetbrains.com/idea/download/#section=windows
    Ссылка для скачивания СУБД PostgreSQL, что будет использована в курсе: https://www.postgresql.org/download/
    Ссылка для скачивания Java 15, что также будет использована в курсе: https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

    00:00 - Приветствие
    00:39 - Что такое JDBC и для чего нужен
    01:35 - Из чего состоит JDBC
    02:43 - JDBC Driver
    03:38 - Используемое ПО в курсе
    04:15 - Основные классы из пакета java.sql.*
    07:08 - Все SQL запросы - это String в Java

  • Подключение JDBC драйвера8:44

    Как мы и обсуждали на предыдущем занятии: для подключения к любой реляционной базе данных нам лишь нужно подключить соответствующий драйвер, остальная часть будет работать одинаково и мы будем использовать те же самые классы и интерфейсы из пакета java.sql.*. На занятии разберемся откуда скачать и как подключить в нашей среде разработки Intellij IDEA без использования различных средств сборки проекта как Maven or Gradle.

    00:00 - Введение
    00:52 - Создание нового проекта
    02:41 - Скачивание PostgreSQL драйвера
    03:38 - Добавление jar в Classpath проекта
    05:34 - Подключение в СУБД в IntelliJ IDEA

  • Подключение к базам данных12:10

    Мы уже прекрасно знаем тонкости подключения к базам данных на примере предыдущего курса "Реляционным базам данных. SQL". Основные параметры - это имя пользователя, его пароль и url, который в свою очередь состоит из следующих параметров: хост, порт и название базы данных, к которой мы хотим обращаться из нашего Java приложения. На занятии все подробно разберем и для примера возьмем базу данных перелетов опять же из предыдущего курса по SQL.

    00:00 - Введение
    00:34 - Класс DriverManager
    02:48 - Класс Connection
    06:22 - Метод getConnection
    08:04 - Класс ConnectionManager
    10:31 - Загрузка драйвера вручную

  • Properties файл9:36

    Мы довольно часто меняет параметры подключения к базам данных в зависимости от того, где мы хотим развернуть свое приложение: на локальном компьютере (local environment), на сервере для тестировщиков (qa environment), на продакшен сервере (prod environment), который уже виден всем конечным пользователям. Следовательно, мы не хотим пересобирать наше приложения для каждого environment, но в то же время хотим сделать подключение динамическим. Для этого нам и приходит на помощь обычный текстовый формат данных - properties, который мы и будем разбирать на занятии.

    00:00 - Введение
    00:58 - Структура Properties файлов
    03:04 - Класс PropertiesUtil
    07:06 - Корректировка класса ConnectionManager
    08:34 - Тестирование функционала

  • Statement. DDL операции8:33

    Наконец-то мы готовы для того, чтобы сделать свой первый запрос в СУБД PostgreSQL из нашего Java приложения. Для этого мы будем разбирать один из самых базовых интерфейсов - Statement, который позволяет нам выполнять совершенно любые SQL операции и отправлять их для выполнения нашей СУБД, к которой мы уже подключились и вынесли в properties файл все настройки соединения. Но начнем мы с более простых команд - это DDL операции.

    00:00 - Введение
    00:53 - Интерфейс Statement
    03:27 - Метод execute и DDL операции
    08:06 - Резюме

  • Statement. DML операции6:20

    Продолжаем разбираться с интерфейсом Statement. На очереди у нас уже 3 основных DML операции - это INSERT, UPDATE и DELETE. К сожалению, DML операция SELECT гораздо сложнее, чем перечисленные три, потому что нам нужно знать, как работать с результатом выборки. Поэтому мы пока умышленно опустим ее в этом занятии.

    00:00 - Введение
    00:50 - INSERT операция
    02:48 - Выполнение нескольких SQL операций
    03:27 - Метод executeUpdate
    04:09 - UPDATE операция
    04:54 - UPDATE и DELETE операции c RETURNING

  • ResultSet. Операция SELECT12:45

    Вот мы и добрались до самой сложной в обработке операции на стороне Java приложения - это DML операция SELECT. Рассмотрим ее на занятии более подробно, а также зачем нам новый для нас интерфейс из пакета java.sql.* - ResultSet.

    00:00 - Введение
    00:32 - SELECT операция и метод executeQuery
    01:42 - Интерфейс ResultSet
    06:29 - Как работает ResultSet
    08:15 - Обновление и перемещение в ResultSet
    11:59 - ResultSet можно не закрывать

  • ResultSet. Generated keys5:28

    Мы уже знаем как работать с результатами выборки с помощью интерфейса ResultSet. В свою очередь, мы его можем использовать и для многих-многих других операций, потому что это основной интерфейс для работы с выборкой данных из наших СУБД. Поэтому мы сможем на занятии воспользоваться им для возвращения сгенерированных первичных ключей при вставке в таблицы - это наши уже известные типы SERIAL, SMALLSERIAL and BIGSERIAL.

    00:00 - Введение
    00:25 - Таблицы с SERIAL полем
    01:26 - Метод getGeneratedKeys

  • SQL Injection8:21

    Мы уже говорили на предыдущих занятиях, что на практике интерфейс Statement не очень часто используется. Оказывается, это не только неудобно, когда у вас переменные параметры, а не просто готовый объект класса String, но и опасно, потому что можно выполнить абсолютно любую операцию (например, DROP DATABASE) совершенно случайно или, наоборот, умышленно. На занятии поговорим про такие опасные операции и что такое SQL Injection.

    00:00 - Введение
    00:11 - SQL запрос getTicketsByFlightId
    03:13 - Метод getObject null-safe
    05:01 - Примеры SQL Injections
    08:09 - Резюме

  • PreparedStatement12:10

    Вот мы и подошли до наследника Statement - это интерфейс PreparedStatement. Он используется при создании большинства запросов в современных Java приложениях, потому что имеет тот же функционал, что и Statement (потому что все-таки является его наследником), но и имеет еще кучу своих новых методов, которые невероятно удобно использовать с изменчивыми параметрами в запросах, которых большинство на практике. Более того, он обезопашивает нас от SQL Injections, что делает его еще более востребованным. Разберем на видео как работать с PreparedStatement более подробно.

    00:00 - Введение
    00:13 - Интерфейс PrepareStatement
    02:30 - Установка параметров через ?
    05:54 - SQL запрос getFlightsBetween
    10:44 - Тестирование запроса
    11:56 - Резюме

  • JDBC Core

Requirements

  • Java Core, SQL

Description

Для успешного прохождения курса JDBC нужно также уверенно знать Java Core (предыдущие курсы Java для начинающих Level 1 and Level 2) и одну из реляционных базы данных (SQL).
На курсе по JDBC мы познакомимся:
- с тем, как работать с реляционными базами данных из нашего Java приложения, как отправлять DDL and DML запросы
- в чем отличие классов Statement and PreparedStatement, и как с ними работать
- узнаем, что такое JDBC драйвер, как его подключать в наше Java приложение без использования инструментов сборки проекта, таких как Maven or Gradle, и зачем он вообще нужен
- познакомимся с properties файлом и зачем выносить настройки соединения с СУБД в этот текстовый формат данных
- проработаем тему транзакций, почему ни одна СУБД не может выполнять SQL запрос без них, а также что такое ACID и уровни изолированности транзакций
- узнаем тонкости настройки запросов (fetch size, batch size, timeout, etc).
- проговорим и на практике применим Connection Pool и узнаем важность его использования
- разберем такой шаблон проектирования как DAO, чтобы показать практическую ценность полученных знаний по JDBC и как его используют на практике в реальных проектах.
На всем протяжении курса будет использоваться самая лучшая и активно развивающаяся СУБД PostgreSQL, которая очень часто встречается в реальных приложениях. А также самая мощная среда разработки IntelliJ IDEA.

Who this course is for:

  • Начинающие Java разработчики, кто уже владеет Java Core и SQL, и хочет научиться отправлять запросы из Java приложения