В данном уроке описывается последний подготовительный этап разработки приложения "Wish List" ("Список желаний") в рамках создания демонстрационной базы данных с тестовыми данными. Для выполнения всех этапов, предложенных в данном руководстве, необходима база данных, которая позволит сохранять данные (желания), введенные пользователями. Среда IDE NetBeans позволяет выполнить соответствующие действия с использованием интерфейса IDE.
Перед началом работы ознакомьтесь с требованиями, описанными в разделе Создание приложения типа CRUD на языке PHP – главная страница.
Текущий документ является частью учебного курса "Создание приложения типа CRUD в среде IDE NetBeans для PHP".
Создание пользователя базы данных
Перед созданием базы данных необходимо создать соответствующего пользователя, которому будет предоставлено право на выполнение любых операций в базе данных. Создание пользователя базы данных включает в себя следующие действия:
Запустите среду IDE, перейдите в окно "Services" и разверните узел "Databases".
Для подключения к серверу базы данных MySQL перейдите к узлу MySQL Server и выберите "Connect" в контекстном меню.
Появится диалоговое окно "MySQL Server Properties".
Если сервер MySQL не был предварительно настроен, откроется диалоговое окно, в котором необходимо заполнить следующие поля:
В поле "Server host name" введите localhost.
В поле "Server port number" введите 3306.
В поле "Administrator user name" введите root.
В поле "Administrator password" введите пароль пользователя root, который установлен в ходе установки сервера MySQL.
Установите флажок "Save password" и нажмите кнопку "OK".
В среде IDE NetBeans осуществляется подключение к серверу MySQL, выполняется проверка баз данных, доступных через сервер, затем выполняется поиск базы данных системы mysql и к дереву баз данных добавляется соответствующий новый узел mysql.
Для выполнения команды SQL необходимо подключение к базе данных. Поскольку доступна только система MySQL, следует подключиться к этой системе. Для подключения к системной базе данных перейдите к узлу mysql и выберите "Connect" в контекстном меню. Если подключение на данный момент отсутствует, появится диалоговое окно "New Database Connection". В поле "User Name" по умолчанию вводится значение "root". В поле "Password" введите пароль пользователя root.
В диалоговом окне "New Database Connection" появится сообщение "Connection established". Нажмите кнопку "OK". К дереву баз данных добавлен новый узел с именем jdbc:mysql://localhost:3306/mysql.
Перейдите к узлу jdbc:mysql://localhost:3306/mysql и выберите в контекстном меню "Execute Command".
Откроется окно "SQL Command". В окне "SQL Command" введите следующие команды:
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'phpuserpw'
Выберите в контекстном меню "Run Statement". Если команда выполнена успешно, в строке состояния выводится следующее сообщение: "SQL Statement(s) executed successfully". Если выводится другое сообщение, проверьте синтаксическую правильность введенных команд и выполните советы, относящиеся к данному сообщению.
Создание демонстрационной базы данных
Для создания базы данных выполните следующие действия:
Перейдите к узлу MySQL Server at localhost:3306 и выберите из контекстного меню "Create Database". Появится диалоговое окно "Create MySQL Database". Заполните поля следующим образом:
В поле имени "Database Name" введите "wishlist".
Установите флажок "Grant full access to user" и выберите в раскрывающемся списке . Нажмите кнопку "OK". прав доступа
Функция предоставления полного доступа пользователю не всегда работает. Если она не работает, подключитесь к базе данных в качестве корневого пользователя и отправьте SQL-запрос GRANT ALL ON wishlist.* TO .
Появится диалоговое окно "New Database Connection".
Установление соединения с демонстрационной базой данных
В диалоговом окне "New Database Connection" заполните поля следующим образом:
В раскрывающемся списке "Name" выберите драйвер MySQL (Connector/J driver).
В поле "Database URL" укажите узел, порт и базу данных следующим образом:
jdbc:mysql://localhost:3306/wishlist
В поле "Имя пользователя" и "Пароль" введите имя и пароль, указанные в разделе Создание владельца (пользователя) базы данных (в рассматриваемом примере — phpuser и phpuserpw, соответственно). Нажмите кнопку "ОК". В дереве баз данных будет отображаться соответствующий новый узел подключения.
(Дополнительно) Теперь подключение mysql по умолчанию можно удалить путем перехода к узлу jdbc:mysql://localhost:3306/ и выбора "Disconnect" из контекстного меню.
Разработка структуры демонстрационной базы данных
Для размещения и сохранения всех необходимых данных требуются две таблицы:
таблица "wishers" для сохранения имен и паролей зарегистрированных пользователей;
таблица "wishes", которая будет содержать описания требований.
Таблица "wishers" содержит три поля:
"id" – уникальный идентификатор пользователя. Это поле используется в качестве первичного ключа.
"name"
"password"
Таблица "wishes" содержит четыре поля:
"id" – уникальный идентификатор пользователя. Это поле используется в качестве первичного ключа.
"wisher_id" – идентификатор пользователя, оставившего желание. Это поле используется в качестве внешнего ключа.
"description"
"due_date" – дата предъявления желания.
Таблицы связаны посредством идентификатора пользователя. Все поля таблицы "wishes" являются обязательными для заполнения, за исключением "due_date".
Создание таблиц
Для подключения к базе данных щелкните правой кнопкой мыши узел подключения jdbc:mysql://localhost:3306/wishlist и выберите "Connect" в контекстном меню. Примечание: Если данный пункт меню не активен, это означает, что подключение уже выполнено. Перейдите к действию 2.
В том же контекстном меню выберите "Execute Command". Откроется пустое окно "SQL Command".
Для создания таблицы "wishers"
Введите следующий SQL-запрос (обратите внимание на то, что для интернационализации необходимо специально настроить наборы символов для UTF-8):
CREATE TABLE wishers( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL UNIQUE, password CHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL )
Примечание: Можно получить уникальный номер, автоматически генерируемый сервером MySQL, путем определения для поля свойства AUTO_INCREMENT. MySQL сгенерирует уникальный номер посредством увеличения на единицу последнего номера в таблице и автоматически добавит его к значению поля с этим свойством. В нашем примере автоматически должно увеличиваться значение в поле "ID".
Щелкните запрос правой кнопкой мыши, затем выберите "Run Statement" в контекстном меню.
Примечание. По умолчанию для хранения в MySQL используется механизм MyISAM, который не поддерживает внешние ключи. Если необходимо использовать внешние ключи, рассмотрите возможность использования механизма хранения InnoDB.
Для создания таблицы "Wishes"
введите следующий запрос SQL:
CREATE TABLE wishes( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, wisher_id INT NOT NULL, description CHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, due_date DATE, FOREIGN KEY (wisher_id) REFERENCES wishers(id) )
Щелкните запрос правой кнопкой мыши, затем выберите "Run Statement" в контекстном меню.
Для проверки того, что новые таблицы добавлены к базе данных, перейдите к окну "Services", а затем к узлу подключения jdbc:mysql://localhost:3306/wishlist.
Нажмите правую кнопку мыши и выберите "Refresh". В дереве появятся узлы "wishers" и "wishes".
Примечание. Набор команд SQL для создания таблиц базы данных MySQL wishlist можно загрузить здесь.
Ввод тестовых данных
Для тестирования приложения необходимо наличие некоторых данных в базе данных. В приведенном ниже примере показано, каким образом можно добавить данные для двух пользователей и четырех желаний.
В узле подключения jdbc:mysql://localhost:3306/wishlist щелкните правой кнопкой мыши и выберите "Execute Command". Откроется пустое окно "SQL Command".
Для добавления данных пользователя введите следующие команды:
INSERT INTO wishers (name, password) VALUES ('Tom', 'tomcat');
Щелкните запрос правой кнопкой мыши и выберите из контекстного меню "Run Statement". Примечание: Оператор не содержит значений для id поле. Значения вводятся автоматически, поскольку указан тип поля AUTO_INCREMENT.
Введите данные другого тестового пользователя:
INSERT INTO wishers (name, password) VALUES ('Jerry', 'jerrymouse');
Для добавления пожеланий ("wishes") введите следующие команды:
INSERT INTO wishes (wisher_id, description, due_date) VALUES (1, 'Sausage', 080401); INSERT INTO wishes (wisher_id, description) VALUES (1, 'Icecream'); INSERT INTO wishes (wisher_id, description, due_date) VALUES (2, 'Cheese', 080501); INSERT INTO wishes (wisher_id, description) VALUES (2, 'Candle');
Выберите запросы, щелкните каждый правой кнопкой мыши по каждому из них и выберите "Run Selection" в контекстном меню.
Примечание: Можно также выполнять запросы один за другим, как описано в пункте 2.
Для просмотра тестовых данных щелкните соответствующую таблицу правой кнопкой мыши и выберите из контекстного меню "View Data".
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для PHP с помощью среды IDE NetBeans можно в списке рассылки .