Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Report.doc
Скачиваний:
26
Добавлен:
16.11.2019
Размер:
99.33 Кб
Скачать

Глава 4. Изучение взаимодействия с базой данных через jdbc.

Для изучения взаимодействия с базой данных через JDBC я использовал литературу, предоставленную компанией[4]. В ходе изучения материала я освоил использование JDBC и JDBC-драйверы, изучил типы драйверов и конкретно тонкий драйвер thin.

Для написания класса получения соединения с базой данных под управлением Oracle я использовал платформу Eclipse IDE 4.2. и стандартные библиотеки ucp.jar, ojdbc6.jar.

Дополнительная задача состояла в создании подключения к пользователю, которому для соединения к базе данных не нужен пароль. Эта задача стандартными средствами не решалась, поэтому я обрабатывал этот случай отдельно, посредствам других приемов[Приложение !!!!!].

Тестирование программы проводилось на базе данных под управлением Oracle, которая находится на локальном сервере.

Глава 5. Написание класса использующего стандартный пул соединений с бд.

Задача написания класса использующий стандартный пул соединений с БД состояла в создании класса со следующими методами.

  1. Метод для получения соединения getConnection();

  2. Метод для возврата соединения releaseConnection(Connection);

  3. Настройки соединений - хост, порт, название БД, пользователь/пароль.

  4. Настройка пула - максимальное/минимальное количество поддерживаемых соединений; максимальное число использований соединения (уничтожать соединение  после определенного количества использований).

Для написания класса использующий стандартный пул соединений с БД было также я использована платформа Eclipse IDE 4.2. и стандартные библиотеки ucp.jar, ojdbc6.jar.

Дополнительная задача также состояла в создании подключения к пользователю, которому для соединения к базе данных не нужен пароль. Эта задача была решена, аналогична предыдущей дополнительной задаче.

Глава 6. Написание класса расширенного пула соединений с бд.

Задача написания класса расширенного пула соединений с БД, была поставлена в связи с тем, что стандартный пул работал некорректно. При вызове метода getConnection() и всех занятых соединениях пула, пул не обрабатывал запрос, т.е. не выдавал соединения и запрос утрачивал силу. Необходимо было расширить класс пула, для того чтобы все запросы на соединения выполнялись.

Для решения поставленной задачи я решил дополнить класс очередью отложенных действий, а также самостоятельно выдавать и забирать соединения и следить за их количеством и состоянием.

Суть очереди отложенных действий состоит в том, что у нас запросы на соединение выполняются потоками и при отсутствии доступного соединения, поток переходит в состояние ожидания и становятся в очередь. Также есть еще один поток, который обрабатывает запросы в очереди, при появлении нового соединения. Для того чтобы не загружать выделенную память поток на время отсутствия запросов находиться в режиме ожидания.

С помощью написанного клиентского приложения, которое с помощью нескольких потоков отправляло запросы на соединение, я смог протестировать работоспособность написанного класса. Класс работал корректно, а при больших тестах выполнял работу за приемлемое время. Задание было зачтено.

Заключение.

В ходе прохождения производственно практики, мною были выполнены все поставленные задачи и достигнуты цели. По итогам практики были закреплены полученные знания в ходе обучения в университете, изучены новые технологии и получен опыт работы на предприятии. По окончанию практики получен положительный отзыв от руководителя практики. По результатам практики я был принят в компанию на постоянную работу с испытательным сроком.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]