![]() |
|
||
|
|
|
Разработка мобильного словаря с использованием JDBC. Часть 1(Николай Зайкин) Продолжая курс статей (1, 2), я решил расширить рассматриваемый учебный пример, подключить к нему современные Java технологии, не углубляясь тем не менее в дебри, чтобы начинающий Java-программист смог настроить приложение клиент-сервер на своем компьютере не прибегая к тяжеловесным (и зачастую небесплатным) программным продуктам (SQL Servers, Java Application Servers), и коснуться модной сегодня концепции MVC (Model - View - Controller). Как и предыдущие уроки, этот курс ориентирован на использование IDE VisualAge for Java компании IBM, хотя обычный текстовый редактор также будет использован не один раз. 1. Краткий обзор СУБД. Подготовка СУБД. Сначала мы настроим SQL сервер на своей машине и перенесем словари в SQL базу данных вместо обычных plain-text файлов. Далее мы рассмотрим Java аналог CGI технологии - Servlets и JSP (Java Server Pages). Зайдите на сайт www.mysql.com и скачайте дистрибутив СУБД-cервера MySQL для вашей платформы (Windows NT). В нашем примере мы используем версию 3.23.38, но это не принципиально. Желательно, чтобы это был релиз 3.23.XX, так как версия 4.0 пока находится в альфа стадии. Запустите
MySQL требует, как и любая СУБД, своего администрирования пользователей. Эти пользователи не имеют никакого отношения к пользователям операционной системы, установленной на этом компьютере. Вам надо будет создать своих пользователей для MySQL. Этот способ имеет большие преимущества: вы защищаете свою систему и полностью контролируете, какой пользователь с каими правами можетподключиться с какого адреса. Это достигается с помощью специальной системной базы данных, содержащих три таблицы:
mysqld-nt.exe
Вы должны установить MySQL сервер как сервис в вашей операционной системе:
или
после этого вы сможете стартовать и останавливать сервис командами
или из Control Panel -> Services. ![]() По умолчанию суперпользователь
Итак, мы получили доступ с SQL серверу. Посмотрим какие пользователи присутствуют сразу после установки системы:
![]() Мы видим, что есть несколько потенциальных брешей в сервере:
root выполните следующие команду.
(используется встроенная функция PASSWORD() для хэширования пароля). Для удаления из системы пользователя без имени выполните следующую команду:
Чтобы заставить сервер перечитать административные таблицы (чтобы новый пароль
пользователя
Теперь новым паролем суперпользователя Взглянем на таблицу пользователей теперь:
![]() Вы можете заметить, что SQL сервер хранит пароли в зашифрованном виде. Алогритм шифрования позволяет выполнять только одностороннее шифрование, то есть пароль невозможно восстановить из его хэша. Временно выйдем из консоли. Наберите:
или
Операционная система выйдет в командную строку. Попробуйте снова:
сервер не позволит залогиниться. Для того чтобы залогиниться, пользователю с паролем
можно либо указать пароль в командной строке (это не секретно, любознательный человек
может прочитать его набрав команду
на запрос введите 'rootpassword'.
Далее, нам надо
Привилегия Столбец Контекст ------------------------------------------------------------ *select* `Select_priv' таблицы *insert* `Insert_priv' таблицы *update* `Update_priv' таблицы *delete* `Delete_priv' таблицы *index* `Index_priv' таблицы *alter* `Alter_priv' таблицы *create* `Create_priv' базы данных, таблицы или индексы *drop* `Drop_priv' базы данных или таблицы *grant* `Grant_priv' базы данных или таблицы *references*`References_priv' базы данных или таблицы *reload* `Reload_priv' администрирование сервера *shutdown* `Shutdown_priv' администрирование сервера *process* `Process_priv' администрирование сервера *file* `File_priv' доступ к файлам на сервереСледовательно, чтобы дать пользователю право выполнять команду SELECT, надо
занести в поле Select_priv таблицы user занечение 'Y'
для данного польозователя.
в результате мы создадим базу данных для словарей, создадим специального пользователя
' Выведем на экран еще раз таблицу пользователей:
![]() Сейчас нам надо создать таблицы для словарей и занести в эти таблицы слова из текстовых файлов. Для начала определим структуру таблиц. Очевидно, каждая таблица должна состоять из двух полей:
Тип столбца Требуемое для хранения место
------------------------------------------------------------------------
`CHAR(M)' `M' байт, `1 <= M <= 255'
`VARCHAR(M)' `L'+1 байт, где `L <= M' и
`1 <= M <= 255'
`TINYBLOB', `TINYTEXT' `L'+1 байт, где `L' < 2^8
`BLOB', `TEXT' `L'+2 байт, где `L' < 2^16
`MEDIUMBLOB', `MEDIUMTEXT' `L'+3 байт, где `L' < 2^24
`LONGBLOB', `LONGTEXT' `L'+4 байт, где `L' < 2^32
`ENUM('value1','value2',...)' 1 или 2 байта, в зависимости от
количества перечисляемых значений
(65535 значений максимум)
`SET('value1','value2',...)' 1, 2, 3, 4 или 8 байт, в зависимости
от числа членов множества (64
членов максимум)
для поля word достаточно будет типа CHAR(M), где 1<=M<=255. А вот
какой тип надо для поля translation: CHAR(M) или
TEXT, мы сможем только узнать, написав небольшую программу на Java, которая
проведет анализ размера перевода и выберет наибольший размер для полей
translation будущих таблиц
Итак, запускаем любимую IDE VisualAge for Java и приступаем к работе... |
| Справка | Условия | |
| В начало | Логин | Комментарий к колонке | Поиск | Почта |