JDBC

Проработать

  1. Простой пример JDBC для начинающих
  2. Как использовать базу данных MySQL в Java
  3. Базовый курс по JDBC
  4. JDBC API в Java - обзор и туториал
  5. Руководство по JDBC

Основные разделы

Основные сущности

  1. Connection
  2. Statement
  3. PreparedStatement
  4. CallableStatement
  5. ResulSet

Место JDBC в программе

  1. Application Code
  2. JDBC API
  3. JDBC DB Driver
  4. SQL Commands + Data
  5. MySQL/PostgreSQL/Oracle/Etc.

Виды Statements

  1. Statement
  2. PreparedStatement
  3. CallableStatement

Statement vs PreparedStatement

  1. Statement - используется для строковых SQL запросов.
    • Из-за объединения строк код сложно-читаемый.
    • Уязвим для SQL-инъекций.
    • Нет оптимизации запросов.
    • Запрос не отобразиться как ранее выполняющийся, и не будет использовать кэш.
    • Подходит для DDL-запросов.
    • Нельзя использовать для хранения/извлечения файлов и массивов.
  2. PreparedStatement - используется для параметризованных SQL запросов.
    • Есть методы для привязки различных типов, включая файлы и массивы.
    • Защищен для SQL-инъекций.
    • Кешируется.
    • Ускоряет обмен данных базой и JVM через двоичный протокол. Меньше данных - быстрее связь.
    • Обеспечивает пакетное выполнение во время одного подключения к базе данных.
    • Имеет метод getMetadata. Которые содержат информацию о возвращаемом результате.

Вывод: Statement для DDL. PreparedStatement для DML.

Виды executors

  1. ExecuteQuery - должен использоваться тогда, когда возможно возвращение нескольких объектов ResultSet.
  2. ExecuteUpdate используется для выполнения операторов INSERT, UPDATE или DELETE, а также для операторов DDL (Data Definition Language - язык определения данных), например, CREATE TABLE и DROP TABLE. Результатом оператора INSERT, UPDATE, или DELETE является модификация одной или более колонок в нуле или более строках таблицы. Метод executeUpdate возвращает целое число, показывающее, сколько строк было модифицировано. Для выражений типа CREATE TABLE и DROP TABLE, которые не оперируют над строками, возвращаемое методом executeUpdate значение всегда равно нулю.

Действия с данными в связанной таблице при удалении

  1. CASCADE
  2. SET NULL
  3. SET DEFAULT
  4. NO ACTION

Типы ограничений целостности данных

  1. Внешний ключ
  2. Первичный ключ
  3. Проверка
  4. Уникальность
  5. По умолчанию