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

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

Avatar for Anton Anton
September 25, 2018

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

Avatar for Anton

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