Java і mysql

Розглянемо приклад, який зв'яже Java-додаток з СУБД MySQL (Java MySQL). Працювати будемо в середовищі Eclipse.

Що нам знадобиться

Де взяти Eclipse? Eclipse скачати можна з www.eclipse.org Безкоштовно.

Java. Java повинна бути встановлена ​​до установки Eclipse.

Де взяти Java? Java скачати можна з www.oracle.com безкоштовно.

Де взяти MySQL? MySQL скачати можна з www.mysql.com. Безкоштовно.

Ще знадобиться JDBC драйвер MySQL, який на сайті називається MySQL Connector / J 5.0.8 (якщо є новіший, то беріть його), а завантажений на комп'ютер файл драйвера називається mysql-connector-java-5.0.8.

Драйвер MySQL Connector / J потрібен для зв'язку Java - додатки і MySQL бази даних.

Встановіть MySQL. Я при установці не міняв ніяких налаштувань, запропонованих майстром. Результат на зображенні:

MySQL Connector / J

Розпакуйте дистрибутив mysql-connector-java-5.0.8 в будь-який каталог. Я розпакував його в папку MySQL_Connector диска «H», отримав ось що:

Java і mysql

Файл mysql-connector-java-5.0.8-bin з розпакованого дистрибутива скопіюйте в папку (в моєму випадку) H: \ Program Files \ Java \ jre1.6.0_02 \ lib \ ext, а ви в свою папку ext:

Java і mysql

Java + MySQL Connector / J + MySQL

Починаємо працювати з Eclipse. Відкриваємо Eclipse SDK. У правому верхньому куті повинна бути кнопка Java, як на малюнку. Якщо цього немає, тоді Window -> Open Perspective -> Java.

Створимо проект: File-> New-> Java Project або File-> New-> Project. і у вікні, вибираємо Java Project, тиснемо Next. В поле Project Name вкажемо MySQLProject, тиснемо Finish. Зліва у вигляді Package Explorer отримуємо:

Правою кнопкою по src, в откившемся меню вибираємо New-> Package. Ім'я пакета в поле Name встановимо app. отримуємо:

Скачайте базу java-mysql (1Кб), розпакуйте і помістіть її в папку data півночі MySQL. У мене вийшло так:

Java і mysql

Правою кнопкою по пакету app -> New -> Class вводимо ім'я класу KApplication, встановимо прапор public static void main. Отриманий клас зробимо спадкоємцем JFrame і додамо поле serialVersionUID:

Перейдемо до моделі, яка буде зберігати інформацію з бази даних.

AbstractTableModel

Додамо в пакет app клас моделі KModel: правою кнопкою по пакету app -> New -> Class

Java і mysql

Змінимо код, створений майстром наступним чином:

Клас моделі ми успадкували від абстрактного класу AbstractTableModel, перевизначивши оголошені в ньому методи і додавши два своїх методу для роботи з даними, що зберігаються в моделі: setTableData і getTableData.

Настав час створити клас, який і буде з'єднувати нас з базою даних.

Java + MySQL

Нагадаю, наша база java-mysql працює під управлінням СУБД MySQL, JDBC драйвер для цієї СУБД називається MySQL Connector / J. Створимо клас, який з'єднає нас з базою даних. Правою кнопкою по пакету app -> New -> Class. Ім'я класу KFDB:

Java і mysql

Змінимо код класу KFDB, створений майстром так:

Ми оголосили в конструкторі класу параметри:

driver - це ім'я нашого драйвера MySQL Connector / J;

login - ім'я користувача;

У блоці try / catch завантажуємо статичним методом forName дравер для бази даних. Статичним методом getConnection встановлюємо з'єднання з нашою базою даних. Клас DriverManager управляє роботою драйверів. Якщо драйвер, в нашому випадку MySQL Connector / J, не виявиться, то буде викинуто виключення ClassNotFoundException, а якщо DriverManager не зможе з'єднатися з нашою базою java-mysql, то буде викинуто виключення SQLException.

Отримаємо з цього проводу інформацію з бази даних. Введемо поле st типу Statement. Це поле дасть нам можливість звернутися до бази даних з якимось конкретним запитом. Визначимо метод getNomen, який поверне інформацію з бази даних:

У методі getNomen створюємо об'єкт Statement st, він дозволить нам зробити запит до бази, сам запит виконується методом executeQuery, який повертає набір даних у вигляді об'єкта ResultSet rs. Цей набір даних можна представити як таблицю з бази даних, що містить самі дані і інформацію про цю таблиці, наприклад, скільки стовпців є в таблиці. Інформацію про устойства отриманого набору даних ізвлечём з об'єкта ResultSetMetaData rsmd. Нас цікавить кількість колонок в наборі даних. Для цього пишемо рядок: int cols = rsmd.getColumnCount (). Метод rs.next () переміщає нас по рядках набору даних. Отримавши перший рядок, в циклі for витягаємо значення з кожного осередку рядки методом rs.getObject (i) і додаємо його в вектор newVector. Сформований таким чином newVector додаємо в результуючий вектор retVector. Вектор retVector стає зображенням набору даних rs.

Повернемося до головного вікна додатка, тобто. до класу KApplication, і наведемо його код до виду (не забудьте вказати вашого користувача і пароль (у мене "root" і "masterkey" відповідно)):

Компілюємо і запускаємо: правою кнопкою по класу KApplication -> Run As -> Java Application, отримуємо:

Схожі статті