Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Базы данных - лекция3 - Объектная модель DAO (O...

Anton
September 25, 2018

Базы данных - лекция3 - Объектная модель DAO (ORM вручную)

Anton

September 25, 2018
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Отображение модели базы данных на объектную модель приложения • Имя

    таблицы ↔ имя класса • Имя колонки ↔ поле класса • Строка таблицы ↔ экземпляр класса (объект)
  2. Сервисные методы: объект-таблица XxxTable • Выборка элементов SELECT → специальные

    методы класса для типовых случаев, возвращают массив объектов или итератор • INSERT/UPDATE/DELETE — аналогично • Инициализация базы и получение объектов- таблиц — объект-одиночка XxxDB
  3. Например • class Student {int id, String name, String group,

    String address} • class StudentTable {insertStudent(Student), deleteStudent(int id), getStudents(String name):List<Student>, getStudents(String group):List<Student>} • class StudentsDB {getInstance(), connect(), getStudentTable():StudentTable}
  4. Лабораторная работа 2.1 • Перевести код из работы 1 (JDBC)

    в код с API DAO • Добавление элементов в базу: cоздаём объект, помещаем в базу через XxxTable.insert • Выборка элементов: через XxxTable.getXxx, итерация по списку объектов
  5. Лабораторная работа 2.2 • Добавьте в базу еще одну таблицу,

    связанную с первой • Обновите API DAO и демо
  6. Лабораторная работа 2.3 • Провести аудит кода DAO на уязвимость

    внедренного SQL-кода • Заменить прямое вклеивание параметров в строки (конкатенацию строк) на механизм PreparedStatement