АСПС. Лабораторная работа №2

# Лабораторная работа №4

# Работа с источниками данных в языке Java

Цель лабораторной работы:

1. Изучить основные концепции работы с технологией JDBC.
2. Изучить приемы программирования с использованием JDBC.

Время для выполнения: |

## 1. Теоретические сведения

> Краткие теоретические сведения про технологию JDBC можно по этой ссылке .

> Более глубокие сведения про работу с серверами БД с помощью технологии JDBC можно посмотреть здесь (pdf, 646 kb, 13 стр.) .

## 2. Пример и технические моменты

> Для разработки программы нам понадобится 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 расположены примеры программ и процедуры компиляции и выполнения.

> ВНИМАНИЕ! Если архивы по указанным выше ссылкам не доступны -
> перейдите на страницу АРХИВЫ_к_КУРСУ на странице СЕЗН Мудула.

## 3. Задание на лабораторную работу

> ### Задание.

> В каждом из заданий необходимо выполнить следующие действия:

> - Организацию соединения с базой данных вынести в отдельный класс, метод которого возвращает соединение.
> - Создать БД. Привести таблицы к одной из нормированных форм.
> - Создать класс для выполнения запросов на извлечение информации из БД с использованием запросов.
> - Создать класс на добавление информации.
> - Создать меню (консольное приложение) для вызова соответствующего действия.
> - Результаты выполнения запроса выдать на консоль.

> Условие Задания согласно варианта можно посмотреть здесь .

### 3. Отчет

> Должен содержать: постановку задачи, программный код решения, результат работы написанной программы