Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaFX.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
4.88 Mб
Скачать

3.1.1. Необхідне програмне забезпечення

Для виконання лабораторних робіт необхідно з офіційного сайту Oracle скачати та інсталювати «JDK 7 with JavaFX SDK». Також необхідно скачати та інсталювати NetBeans IDE (версією не нижче за 7.0) та СУБД MySQL.

3.1.2. Налаштування проекту JavaFx-додатку

Виберіть в головному меню розділ File > New Project. В області Categories виберіть JavaFX. В області Projects виберіть JavaFX FXML Application і натисніть кнопку Next. Назвемо його JavafxApp та натискаємо Finish.

В створеному проекті у пакеті javafxapp вже є файли Sample.fxml та Sample.java, які реалізують просту логіку, отже, запустивши проект (F6), можна подивитись, що середовище налаштоване і немає ніяких помилок.

Рис. 3.1. Запущений JavaFX-додаток, створений IDE

3.1.3. Підключення бази даних

Для реалізації авторизації користувачів необхідно створити зв’язок додатку з базою даних.

Для цього необхідно перейти у вкладку «Служби». Викликати контекстне меню на елементі Databases та натиснути «Зареєструвати MySQL сервер…». За замовченням MySQL встановлюється на порту 3306 і, якщо він не був змінений, то у вікні немає необхідності змінювати параметри за замовченням.

Тепер необхідно зробити деякі налаштування у вкладці «Admin properties»:

  1. У полі "Шлях / URL-адреса до засобу адміністрування" введіть шлях до засобу адміністрування MySQL (наприклад, MySQL Admin Tool, PhpMyAdmin або іншого придатного веб-засобу) або знайдіть його за допомогою кнопки "Огляд".

Примітка. Засіб адміністрування MySQl mysqladmin розташований в папці bin каталогу установки MySQL. Цей засіб командного рядка не підходить для використання в середовищі IDE.

Введіть аргументи для засобу адміністрування у відповідне поле.

  1. У полі "Шлях до команди запуску" введіть шлях MySQL або знайдіть його за допомогою кнопки "Огляд". Для отримання команди запуску знайдіть файл mysqld в папці bin каталогу установки MySQL.

Примітка. В Unix і NetWare рекомендується запускати двійковий файл mysql_safe. Також може знадобитися інша команда запуску при установці MySQL в складі установки AMP.

Введіть значення аргументів для команди запуску у відповідне поле.

  1. У полі "Шлях до команди зупинки" введіть шлях до команди зупинки MySQL або знайдіть його за допомогою кнопки "Огляд". Звичайно потрібно ввести шлях до файлу mysqladmin в папці bin каталогу установки MySQL. При використанні команди mysqladmin введіть -u root stop в поле "Аргументи" для отримання прав користувача root на зупинку сервера.

На рис. 3.2 зображений зовнішній вигляд вкладки «Admin properties» по завершенні налаштування. Якщо настройка виконана коректно, натисніть кнопку "ОК".

Рис. 3.2. Приклад вигляду налаштованих параметрів MySQL сервера

Викликавши контекстне меню на тільки-но створеному вузлі («MySQL server at localhost: 3360»), оберіть «Створити базу даних» і назвіть її javafx.

Тепер необхідно зробити останній крок: додати MySQL JDBC Driver в libraries проекту (через контекстне меню вузла).

3.1.4. Створення моделей та їх маппінг за допомогою jpa

На цьому етапі необхідно створити клас користувача і домогтися створення відповідної таблиці в базі даних.

Для цього:

  1. Створіть у пакет javafxapp ще один пакет, під назвою models (повна назва: javafxapp.models). В ньому будуть знаходитися всі моделі додатка.

  2. Додойте Entity Class в цей пакет.

  3. У вікні створення класу введіть у поле ім’я файлу UserFx та встановіть прапорець «Create persistence unit». Натисніть «Далі».

  4. У вікні налаштуванния провайдеру та бази даних введіть в поле «Persistance Unit Name» JavafxAppPU, в поле «Persistence Library» оберіть EclipseLink (JPA 2.0), в полі «Database Connection» оберіть підключення до MySQL, а значенням «Table Generation Strategy» оберіть Create. Приклад наведений на рис. 3.3.

Рис. 3.3. Приклад вигляду налаштованих провайдеру та бази даних

Додамо до згенерованної моделі наступні поля:

private String username;

private String password;

private String phone;

private String country;

private String city;

private Boolean admin = false;

Та додамо до них геттери та сетери, викликавши контекстне меню на назві одного з полів та обравши команду Insert code. У вікні, що з’явилося, обираємо всі поля, окрім поля admin, та тиснемо на кнопку «Generete» (рис. 3.4).

Рис. 3.4. Вікно вибору полів класу для генерації геттерів і сеттерів

Отже клас буде виглядати наступним чином:

package javafxapp.models;

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

@Entity

@Table(uniqueConstraints=@UniqueConstraint(columnNames="username"))

public class UserFx implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private Long id;

@Column(nullable = false)

private String username;

@Column(nullable = false)

private String password;

private String phone;

private String country;

private String city;

private Boolean admin = false;

public Boolean isAdmin(){

return admin;

}

public void setAdmin(Boolean value){

this.admin = value;

}

public String getCity() {

return city;

}

public void setCity(String city) {

this.city = city;

}

public String getCountry() {

return country;

}

public void setCountry(String country) {

this.country = country;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

@Override

public int hashCode() {

int hash = 0;

hash += (id != null ? id.hashCode() : 0);

return hash;

}

@Override

public boolean equals(Object object) {

// TODO: Warning - this method won't work in the case the id fields are not set

if (!(object instanceof UserFx)) {

return false;

}

UserFx other = (UserFx) object;

if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {

return false;

}

return true;

}

@Override

public String toString() {

return "javafxapp.models.UserFx[ id=" + id + " ]";

}

}

Запустіть додаток. JPA створить необхідну таблицю з назвою USERFX, отже перевірте її наявність в базі даних. За допомогою SQL запиту або використовуючи засоби адміністрування MySQL, додайте один запис з правами адміністратора до цієї таблиці.