Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на Java часть 2

.pdf
Скачиваний:
134
Добавлен:
16.03.2016
Размер:
3.07 Mб
Скачать

ЦОТ ―БЕЛХАРД‖

Е.В.Белая

Разработка приложения с пользовательским интерфейсом работающего с базой данных MySQL

Учебно-методическое пособие для слушателей курса ―Основы программирования на Java‖ ЦОТ ―БЕЛХАРД‖

Минск 2015

УДК 004.738

ББК 32.979.26-017.2

А в т о р :

преподаватель центра обучающих технологий ОДО «БелХард» Е.В. Белая

Белая Е.В.

Разработка приложения с пользовательским интерфейсом работающего с базой данных MySQL: учебно-методическое пособие для слушателей курса «Основы программирования на Java» ЦОТ ОДО «БелХард » / Е.В. Белая.– Минск : ОДО «БелХард», 2015г. – 171 с.

ISBN 987-985-6644-73-2

Пособие предназначено для слушателей курса «Основы программирования на Java» ЦОТ ОДО «БелХард» начинающих и продолжающих изучение технологий Java под руководством преподавателя. В нем рассматриваются основы MySQL и swing, Приведена пошаговая инструкция проектирования и создания готового приложения работающего с базой данных.

Среди теоретического материала приводится много заданий и примеров готовых реализаций

УДК 004.738 ББК 32.979.26-017.2

 

Белая Е.В., 2015

ISBN 987-985-6644-73-2

ОДО «БелХард », 2015

2

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ..............................................................................................................

4

Глава 1. ВВЕДЕНИЕ В MySQL .............................................................................

5

Тема 1.1. Понятие базы данных.........................................................................

5

Тема 1.2. Реляционные базы данных ................................................................

6

Тема 1.3. Основы языка SQL .............................................................................

9

Тема 1.4. Типы данных языка SQL..................................................................

15

Тема 1.5. Создание и наполнение таблиц .......................................................

21

Тема 1.6. Выборки из таблицы ........................................................................

27

Тема 1.7. Вложенность SQL запросов.............................................................

32

Тема 1.8. Объединение таблиц ........................................................................

35

Тема 1.9. Группировка записей и функция COUNT() ...................................

40

Тема 1.10. Редактирование, обновление и удаление данных .......................

42

Глава 2 JDBC (Java DataBase Connectivity) ........................................................

47

Тема 2.1 Драйверы, соединения и запросы ....................................................

47

Тема 2.2 Простое соединение и простой запрос ............................................

48

Тема 2.3 Класс ResultSet ...................................................................................

51

Тема 2.4 Метаданные ........................................................................................

53

Тема 2.5 Подготовленные запросы .................................................................

56

Глава 3 SWING И ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС .............................

62

Тема 3.1 Общие сведения о swing ...................................................................

62

Тема 3.2 Архитектура MVC .............................................................................

64

Тема 3.3 Контейнер и компоненты..................................................................

65

Тема 3.4 Простая программа, использующая средства Swing .....................

70

Тема 3.5 Поддержка событий .........................................................................

71

Тема 3.6 Использование кнопок и обработка событий .................................

76

Тема 3.7 Краткие сведения о диспетчерах компоновки................................

79

Тема 3.8 Описание различных компонент swing ...........................................

81

Тема 3.9 Пример использования JDBC и SWING вместе .............................

94

Тема 3.10 Работа с датой и временем..............................................................

99

Тема 3.11 Рефлексия .......................................................................................

108

Глава 4. РАЗРАБОТКА ПРИЛОЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ

 

БИБЛИОТЕКИ SWING РАБОТАЮЩЕГО С БАЗОЙ ДАННЫХ MySQL ...

116

Тема 4.1. Примерная структура проекта.......................................................

116

Тема 4.2. Проектирование базы данных для проекта..................................

117

Тема 4.3. Классы-сущности............................................................................

118

Тема 4.4. Слой DAO........................................................................................

126

Тема 4.5 Методы для создания и удаления базы данных ...........................

131

Тема 4.6 Разработка пользовательского интерфейса ..................................

135

Тема 4.7 Демонстрация работы приложения ...............................................

164

ЗАКЛЮЧЕНИЕ ...................................................................................................

170

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ .........................................

171

3

 

ВВЕДЕНИЕ

Данное методическое пособие предназначено для слушателей курса ―Основы программирования на Java‖ ЦОТ ―БЕЛХАРД‖, обладающих базовыми знаниями по Java. С его помощью вы сможете создать собственное приложение, с пользовательским интерфейсом работающее с базой данных MySQL. Данное пособие является вспомогательным материалом при написании итогового проекта. Подробное описание работы методов и пояснения к приведенному здесь коду слушатели получат на курсе «Основы программирования на Java» .

4

ГЛАВА 1. ВВЕДЕНИЕ В MYSQL

Тема 1.1. Понятие базы данных

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

Несмотря на то, что мы постоянно используем базы данных, для многих остается непонятным, что же это такое на самом деле. И связано это отчасти с тем, что одни и те же термины, относящиеся к базам данных, используются людьми для определения совершенно разных вещей. Давайте разберемся с терминами и понятиями баз данных:

База данных - набор сведений, хранящихся некоторым упорядоченным способом. Можно сравнить базу данных со шкафом, в котором хранятся документы. Иными словами, база данных - это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД).

Система управления базами данных - это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д. В общем СУБД - это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка - SQL.

SQL - язык структурированных запросов, основной задачей которого является предоставление простого способа считывания и записи информации в базу данных. Итак, простейшая схема работы с базой данных выглядит примерно так:

По характеру использования СУБД делят на однопользовательские (предназначенные для создания и использования БД на персональном компьютере) и многопользовательские (предназначенные для работы с единой БД нескольких компьютеров, объединенных в локальные сети). Вообще деление по характеру использования можно представить следующей схемой:

5

Не вдаваясь далее в подробности, отметим, что на сегодняшний день число используемых СУБД исчисляется десятками. Наиболее известные однопользовательские СУБД - Microsoft Visual FoxPro и Access, многопользовательские - MS SQL Server, Oracle, PostgreSQL и MySQL.

Мы будем работать в среде MySQL, т.к. она бесплатна и предустановлена на большинстве хостингах.

Тема 1.2. Реляционные базы данных

Реляционные базы данных, как мы уже знаем, состоят из таблиц. Каждая таблица состоит из столбцов (их называют полями или атрибутами) и строк (их называют записями или кортежами). Таблицы в реляционных базах данных обладают рядом свойств. Основными являются следующие:

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

Столбцы располагаются в определенном порядке, который создается при создании таблицы.

В таблице может не быть ни одной строки, но обязательно должен быть хотя бы один столбец.

У каждого столбца есть уникальное имя (в пределах таблицы), и все значения в одном столбце имеют один тип (число, текст, дата...).

На пересечении каждого столбца и строки может находиться только атомарное значение (одно значение, не состоящее из группы значений).

Таблицы, удовлетворяющие этому условию, называют нормализованными.

Все будет понятнее на примере. Предположим, мы захотели создать базу данных для форума. У форума есть зарегистрированные пользователи,

6

которые создают темы и оставляют сообщения в этих темах. Эта информация

идолжна храниться в базе данных. Теоретически (на бумаге) мы можем все это расположить в одной таблице, например, так:

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

идолжна храниться в базе данных. Теоретически (на бумаге) мы можем все это расположить в одной таблице, например, так:

Но это противоречит свойству атомарности (одно значение в одной ячейке), а в столбцах Темы и Сообщения у нас предполагается неограниченное количество значений. Значит, нашу таблицу надо разбить на три: Пользователи, Темы и Сообщения.

Наша таблица Пользователи удовлетворяет всем условиям. А вот таблицы Темы и Сообщения - нет. Ведь в таблице не может быть двух одинаковых строк, а где гарантия, что один пользователь не оставит два одинаковых сообщения, например:

Кроме того, мы знаем, что каждое сообщение обязательно относится к какой-либо теме. А как это можно узнать из наших таблиц? Никак. Для решения этих проблем, в реляционных базах данных существуют ключи. Первичный ключ (сокращенно РК - primary key) - столбец, значения которого во всех строках различны. Первичные ключи могут быть логическими (естественными) и суррогатными (искусственными). Так, для нашей таблицы Пользователи первичным ключом может стать столбец e-mail (ведь теоретически не может быть двух пользователей с одинаковым e-mail). На практике лучше использовать суррогатные ключи, т.к. их применение позволяет абстрагировать ключи от реальных данных. Кроме того, первичные ключи менять нельзя, а что если у пользователя сменится e-mail?

7

Суррогатный ключ представляет собой дополнительное поле в базе данных. Как правило, это порядковый номер записи (хотя вы можете задавать их на свое усмотрение, контролируя, чтобы они были уникальны). Давайте внесем поля первичных ключей в наши таблицы:

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

Теперь понятно, что сообщение с id=2 принадлежит теме "О рыбалке" (id темы = 4), созданной Васей, а остальные сообщения принадлежать теме "О рыбалке" (id темы = 1), созданной Кириллом. Такое поле называется внешний ключ (сокращенно FK - foreign key). Каждое значение этого поля соответствует какому-либо первичному ключу из таблицы "Темы". Так устанавливается однозначное соответствие между сообщениями и темами, к которым они относятся. Последний нюанс. Предположим, у нас добавился новый пользователь, и зовут его тоже Вася:

8

Как мы узнаем, какой именно Вася оставил сообщения? Для этого поля автор в таблицах "Темы" и "Сообщения" мы сделаем также внешними ключами:

Наша база данных готова. Схематично ее можно представить так:

Тема 1.3. Основы языка SQL

Изучать язык SQL будем на примере СУБД MySQL. Для начала скачаем инсталл сервера с официального сайта MySQL – mysql.com . Запустим MySQL command line client – это обычная консолька. Итак, попробуем создать базу данных с предыдущей главы. Первое что попросит у нас сервер – ввести пароль для пользователя root, который вы указывали при установке программы:

9

Нам надо создать базу данных, которую мы назовем forum. Для этого в SQL существует оператор create database. Создание базы данных имеет следующий синтаксис:

create database имя_базы_данных;

Максимальная длина имени БД составляет 64 знака и может включать буквы, цифры, символ "_" и символ "$". Имя может начинаться с цифры, но не должно полностью состоять из цифр. Любой запрос к БД заканчивается точкой с запятой (этот символ называется разделителем - delimiter). Получив запрос, сервер выполняет его и в случае успеха выдает сообщение "Query OK

..." Итак, создадим БД forum, нажимаем Enter и видим ответ "Query OK ...", означающий, что БД была создана:

10