Цель лабораторной работы: |
|
Время для выполнения: |
Краткие теоретические сведения про технологию JDBC можно по этой ссылке
.
Более глубокие сведения про работу с серверами БД с помощью технологии JDBC можно посмотреть здесь (pdf, 646 kb, 13 стр.)
.
Для разработки программы нам понадобится jdbc-коннектор для сервера MySQL, который можно скачать здесь (mysql-connector-java-5.1.23.zip), или с официального сайта Oracle.
Для выполнения даного задания в сети на сервере с именем kit.znu.edu.ua (на нем стоит MySQL сервер версии 5.6) создана База данных с именем mpes. Для доступа к этой БД необходимо воспользоваться именем пользователя user39 (пароль: user39).
Поскольку, в одной БД таблицы не могут иметь одинакового имени, то договоримся к имени таблицы добавлять префикс ваши-инициалы-латинницей_, например mvo_example_table.
Таблица mvo_example_table имеет структуру:
CREATE TABLE `mvo_example_table` (
`id_example_table` int(11) NOT NULL AUTO_INCREMENT,
`text_field` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id_example_table`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;Ниже представлен пример программы для коннекта к БД и выборки из указанной таблицы.
package jdbcexample; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class JdbcExample { public static void main(String[] args) { String cls = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://kit.znu.edu.ua/mpes"; String un = "user39"; String psw = "user39"; try { Class.forName(cls); } catch (ClassNotFoundException ex) { Logger.getLogger(JdbcExample.class.getName()).log(Level.SEVERE, null, ex); } Connection conn = null; try { conn =(Connection) DriverManager.getConnection(url,un, psw); } catch (SQLException ex) { Logger.getLogger(JdbcExample.class.getName()).log(Level.SEVERE, null, ex); } String selectTableSQL = "SELECT * from MVO_EXAMPLE_TABLE"; Statement stmnt; ResultSet rs; try { stmnt= (Statement) conn.createStatement(); rs=stmnt.executeQuery(selectTableSQL); while (rs.next()) { Integer id = rs.getInt("ID_EXAMPLE_TABLE"); String info = rs.getString("TEXT_FIELD"); System.out.print("id: " + id); System.out.println(", info: " + info); } } catch (SQLException e) { System.out.println(e.getMessage()); } } }Результат выполнения программы (в среде NetBeans):
run:
id: 1, info: Информация из поля 1
id: 2, info: Информация из поля 2
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 1 секунда)Проект программы (для среды NetBeans) можно скачать по этой ссылке. После распаковывания проекта (в директорию jdbcExample), в параллельно находящуюся на диске папку lib необходимо скопировать jar файл с библиотекой - jdbc-коннектором для MySQL (mysql-connector-java-5.1.23-bin.jar).
2A. Технические моменты
Если сервер с именем kit.znu.edu.ua или по адресу 10.1.100.39 недоступен, можно "запустить" и использовать SQL сервер на Вашей рабочей станции. Для этого выполните следующее:
1. Скопируйте архив в любую директорию Вашей рабочей станции (https://moodle.znu.edu.ua/mod/url/view.php?id=552887).
2. Разархивируйте содержимое в D:\mysql
Внимание! У Вас в папке D:\mysql должны появиться папки и файлы:Фрагмент Содержимое папки D:\mysql
12.11.2019 12:39 <DIR> $_bat_sql
21.12.2018 13:27 <DIR> bin
21.12.2018 12:39 17 987 COPYING
12.11.2019 13:22 <DIR> data
10.10.2019 13:32 <DIR> docs
27.03.2019 13:37 <DIR> files
21.12.2018 13:27 <DIR> include
21.12.2018 13:27 <DIR> lib
28.03.2019 11:16 <DIR> logs
3. "Перейдите" в $_bat_sql
4. Читайте файл "читать.txt" и используйте процедуры для запуска и работы с "локальным" сервером...
5. В папке DBF_znu расположены примеры программ и процедуры компиляции и выполнения.ВНИМАНИЕ! Если архивы по указанным выше ссылкам не доступны -
перейдите на страницу АРХИВЫ_к_КУРСУ на странице СЕЗН Мудула.
Задание.
В каждом из заданий необходимо выполнить следующие действия:
- Организацию соединения с базой данных вынести в отдельный класс, метод которого возвращает соединение.
- Создать БД. Привести таблицы к одной из нормированных форм.
- Создать класс для выполнения запросов на извлечение информации из БД с использованием запросов.
- Создать класс на добавление информации.
- Создать меню (консольное приложение) для вызова соответствующего действия.
- Результаты выполнения запроса выдать на консоль.
Должен содержать: постановку задачи, программный код решения, результат работы написанной программы