Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОФОРМЛЕНИЕ ДИПЛОМНЫХ И КУРСОВЫХ РАБОТ / Приложение В-1_Содержание и пример курсовой работы.doc
Скачиваний:
42
Добавлен:
19.02.2016
Размер:
1.87 Mб
Скачать

2.4. Создание концептуальной модели

Таким образом, построена концептуальная модель для данной предметной области.

Рис 2.2. Концептуальная модель данных

Глава 3. Программная реализация Интернет-комплекса

3.1. Логическая структура программы

Давно известно, что любое серьёзное приложение должно быть грамотно спроектировано и разделено на отдельные модули, которые должны быть относительно независимыми друг от друга. Подобное разделение значительно облегчает не только реализацию приложения, но и возможную его модификацию. В этом заключается принцип модульности объектно-ориентированного программирования.

Интернет-комплекс «Знание» представляет собой большое web-приложение с поддержкой базы данных, и целесообразно было разделить его на слои.

Были выделены следующие слои приложения:

    1. База данных.

    2. Классы работающие с базой данных.

    3. Классы-сущности.

    4. Action-классы, работающие с сущностями.

    5. Пользовательский интерфейс.

Приложение реализовано с использованием технологии Struts, а значит его логическая структура сроится в соответствии с паттерном проектирования MVC. В данном случае к Модели (Model) относится вся бизнес-логика классов-сущностей и классов, работающих с базой данных. Пользовательский интерфейс является Представлением (View) в MVC. А все Action-классы, которые получают запросы пользователя и соответствующим образом их обрабатывают, представляют собой Контроллер (Controller).

Рассмотрим названные слои более подробно.

3.2. База данных

Таблицы базы данных – самый низкий логический уровень приложения. В соответствии с концептуальной схемой предметной области создана база данных Knowledge со следующими основными таблицами:

  • Actors (Деятели)

  • Events (Мероприятия)

  • Lectories (Лектории)

  • Domains (Направления деятельности)

  • Photo (Фотографии)

  • Data (Информация в помощь)

Так как между некоторыми таблицами используется связь «многие-ко-многим», то возникла необходимость создать дополнительные промежуточные таблицы:

  • ActorsAndDomains

  • ActorsAndEvents

  • ActorsAndLectories

  • ActorsAndPhoto

  • DomainsAndData

  • EventsAndDomains

  • EventsAndPhoto

В каждой из этих таблиц всего два столбца, содержащие значения первичных ключей тех таблиц, для которых данная таблица является промежуточной.

3.3. Классы работающие с базой данных

Классы, которые относятся к этому логическому слою, находятся в пакете by.knowledge.database.

Класс DBQueryHelper вспомогательный. Он генерирует SQL запросы к базе данных. Например, рассмотрим метод insertQuery, который конструирует SQL запрос, добавляющий новую запись в таблицу:

public static String insertQuery(String table, String[] fields,

String[] values) {

String query = "INSERT INTO " + table + " (";

for (int i = 0; i < fields.length; i++) {

query += fields[i] + ", ";

}

query = query.substring(0, query.length() - 2);

query += ") VALUES (";

for (int i = 0; i < values.length; i++) {

if ("null".equals(values[i])) {

query += "NULL, ";

}

else {

query += "'" + values[i] + "', ";

}

}

query = query.substring(0, query.length() - 2);

query += ")";

return query;

}

В качестве параметров этот метод принимает название таблицы table, массив названий полей fields и массив соответствующих значений values.

Таким образом, в коде не придётся писать полный запрос типа "INSERT INTO Domains (Name_Domain, Description_Domain) VALUES (‘Экология’, ‘Проблемы экологии’)". А достаточно будет вызвать метод insertQuery, передав ему необходимые параметры. Это позволяет избежать возможных опечаток в запросах и упростить разработку приложения.

Класс DBConnection позволяет работать с базой данных. В нём реализованы методы, с помощью которых открывается и закрывается соединение с базой данных, а также методы, осуществляющие SQL-запросы.