|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Откат к точке сохранения: savepoint1При этом результаты выполнения запроса trueSQL будут сохранены перед попыткой повторения транзакции. Пул соединений При большом количестве клиентов, работающих с приложением, к его базе данных выполняется большое количество запросов. Установление соединения с БД является дорогостоящей (по требуемым ресурсам) операцией. Эффективным способом решения данной проблемы является организация пула (pool) используемых соединений, которые не закрываются физически, а хранятся в очереди и предоставляются повторно для других запросов. Пул соединений – это одна из стратегий предоставления соединений приложению (не единственная, да и самих стратегий организации пула существует несколько). Пул соединений можно организовать с помощью server.xml дескрипторного файла Аpache Tomcat в виде: <Context docBase=" FirstProject " path="/FirstProject" <!—создание пул соединений для СУБД MySQL --> <Resource auth="Container" name=" jdbc/db1 " type=" javax.sql.DataSource "/> <ResourceParams name=" jdbc/db1 "> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name> driverClassName </name> <value> org.gjt.mm.mysql.Driver </value> </parameter> <!—url-адрес соединения JDBC для конкретной базы данных db1 Аргумент autoReconnect=true, заданный для url-адреса драйвера JDBC, должен автоматически разорвать соединение, если mysqld его закроет. По умолчанию mysqld закроет соединение через 8 часов.--> <parameter> <name> url </name> <value> jdbc:mysql://localhost:3306/db1?autoReconnect=true </value> </parameter> <parameter> <name> usernam e</name> <value> root </value> </parameter> <parameter> <name> password </name> <value> pass </value> </parameter> <parameter> <name> maxActive </name> <value> 500 </value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <parameter> <name>removeAbandoned</name> <value>true</value> </parameter> <parameter> <name>removeAbandonedTimeout</name> <value>60</value> </parameter> <parameter> <name>logAbandoned</name> <value>true</value> </parameter> </ResourceParams> </Context> Найти и запустить данный пул соединений можно с помощью JNDI. Разделяемый доступ к источнику данных можно организовать, например, путем объявления статической переменной типа DataSource из пакета javax.sql, однако в J2EE принято использовать для этих целей каталог. Источник данных типа DataSource – это компонент, предоставляющий соединение Класс InitialContext, как часть JNDI API, обеспечивает работу с каталогом именованных объектов. В этом каталоге можно связать объект источника данных DataSource с некоторым именем (не только с именем БД, но и вообще Затем созданный объект можно получить с помощью метода lookup() по его имени. Методу lookup() передается имя, всегда начинающееся с имени корневого контекста. javax.naming.Context ct = new javax.naming.InitialContext(); DataSource ds = (DataSource)ct.lookup("java:jdbc/db1"); Connection cn = ds.getConnection("root", "pass"); После выполнения запроса соединение завершается, и его объект возвращается обратно в пул вызовом: cn.close(); Некоторые производители СУБД для облегчения создания пула соединений определяют собственный класс на основе интерфейса DataSource. В этом случае пул соединений может быть создан, например, следующим образом: import COM.ibm.db2.jdbc.DB2DataSource; ... DB2DataSource ds = new DB2DataSource(); ds.setServerName("//localhost:50000/db1"); Connection cn = ds.getConnection("db2inst1", "pass"); Драйвер определяется автоматически в объекте DB2DataSource. Задания к главе 20 Вариант А В каждом из заданий необходимо выполнить следующие действия: · Организацию соединения с базой данных вынести в отдельный класс, метод которого возвращает соединение. · Создать БД. Привести таблицы к одной из нормированных форм. · Создать класс для выполнения запросов на извлечение информации из БД с использованием компилированных запросов. · Создать класс на добавление информации. · Создать HTML-документ с полями для формирования запроса. · Результаты выполнения запроса передать клиенту в виде HTML-документа. 1. Файловая система. В БД хранится информация о дереве каталогов файловой системы – каталоги, подкаталоги, файлы. Для каталогов необходимо хранить: – родительский каталог; – название. Для файлов необходимо хранить: – родительский каталог; – название; – место, занимаемое на диске. · Определить полный путь заданного файла (каталога). · Подсчитать количество файлов в заданном каталоге, включая вложенные файлы и каталоги. · Подсчитать место, занимаемое на диске содержимым заданного каталога. · Найти в базе файлы по заданной маске с выдачей полного пути. · Переместить файлы и подкаталоги из одного каталога в другой. · Удалить файлы и каталоги заданного каталога. 2. Видеотека. В БД хранится информация о домашней видеотеке – фильмы, актеры, режиссеры. Для фильмов необходимо хранить: – название; – имена актеров; – дату выхода; – страну, в которой выпущен фильм. Для актеров и режиссеров необходимо хранить: – ФИО; – дату рождения. · Найти все фильмы, вышедшие на экран в текущем и прошлом году. · Вывести информацию об актерах, снимавшихся в заданном фильме. · Вывести информацию об актерах, снимавшихся как минимум в N фильмах. · Вывести информацию об актерах, которые были режиссерами хотя бы одного из фильмов. · Удалить все фильмы, дата выхода которых была более заданного числа лет назад. 3. Расписание занятий. В БД хранится информация о преподавателях Для предметов необходимо хранить: – название; – время проведения (день недели); – аудитории, в которых проводятся занятия. Для преподавателей необходимо хранить: – ФИО; – предметы, которые он ведет; – количество пар в неделю по каждому предмету; – количество студентов, занимающихся на каждой паре. · Вывести информацию о преподавателях, работающих в заданный день недели в заданной аудитории. · Вывести информацию о преподавателях, которые не ведут занятия · Вывести дни недели, в которых проводится заданное количество занятий. · Вывести дни недели, в которых занято заданное количество аудиторий. · Перенести первые занятия заданных дней недели на последнее место. 4. Письма. В БД хранится информация о письмах и отправляющих их людях. Для людей необходимо хранить: – ФИО; – дату рождения. Для писем необходимо хранить: – отправителя; – получателя; – тему письма; – текст письма; – дату отправки. · Найти пользователя, длина писем которого наименьшая. · Вывести информацию о пользователях, а также количестве полученных и отправленных ими письмах. · Вывести информацию о пользователях, которые получили хотя бы одно сообщение с заданной темой. · Вывести информацию о пользователях, которые не получали сообщения с заданной темой. · Направить письмо заданного человека с заданной темой всем адресатам. 5. Сувениры. В БД хранится информация о сувенирах и их производителях. Для сувениров необходимо хранить: – название; – реквизиты производителя; – дату выпуска; – цену. Для производителей необходимо хранить: – название; – страну. · Вывести информацию о сувенирах заданного производителя. · Вывести информацию о сувенирах, произведенных в заданной стране. · Вывести информацию о производителях, чьи цены на сувениры меньше заданной. · Вывести информацию о производителях заданного сувенира, произведенного в заданном году. · Удалить заданного производителя и его сувениры. 6. Заказ. В БД хранится информация о заказах магазина и товарах в них. Для заказа необходимо хранить: – номер заказа; – товары в заказе; – дату поступления. Для товаров в заказе необходимо хранить: – товар; – количество. Для товара необходимо хранить: – название; – описание; – цену. · Вывести полную информацию о заданном заказе. · Вывести номера заказов, сумма которых не превосходит заданную, · Вывести номера заказов, содержащих заданный товар. · Вывести номера заказов, не содержащих заданный товар и поступивших в течение текущего дня. · Сформировать новый заказ, состоящий из товаров, заказанных в текущий день. · Удалить все заказы, в которых присутствует заданное количество заданного товара. 7. Продукция. В БД хранится информация о продукции компании. Для продукции необходимо хранить: – название; – группу продукции (телефоны, телевизоры и др.); – описание; – дату выпуска; – значения параметров. Для групп продукции необходимо хранить: – название; – перечень групп параметров (размеры и др.). Для групп параметров необходимо хранить: – название; – перечень параметров. Для параметров необходимо хранить: – название; – единицу измерения. · Вывести перечень параметров для заданной группы продукции. · Вывести перечень продукции, не содержащий заданного параметра. · Вывести информацию о продукции для заданной группы. · Вывести информацию о продукции и всех ее параметрах со значениями. · Удалить из базы продукцию, содержащую заданные параметры. · Переместить группу параметров из одной группы товаров в другую. 8. Погода. В БД хранится информация о погоде в различных регионах. Для погоды необходимо хранить: – регион; – дату; – температуру; – осадки. Для регионов необходимо хранить: – название; – площадь; – тип жителей. Для типов жителей необходимо хранить: – название; – язык общения. · Вывести сведения о погоде в заданном регионе. · Вывести даты, когда в заданном регионе шел снег и температура была ниже заданной отрицательной. · Вывести информацию о погоде за прошедшую неделю в регионах, жители которых общаются на заданном языке. · Вывести среднюю температуру за прошедшую неделю в регионах 9. Магазин часов. В БД хранится информация о часах, продающихся в магазина. Для часов необходимо хранить: – марку; – тип (кварцевые, механические); – цену; – количество; – реквизиты производителя. Для производителей необходимо хранить: – название; – страну. · Вывести марки заданного типа часов. · Вывести информацию о механических часах, цена на которые не превышает заданную. · Вывести марки часов, изготовленных в заданной стране. · Вывести производителей, общая сумма часов которых в магазине 10. Города. В БД хранится информация о городах и их жителях. Для городов необходимо хранить: – название; – год основания; – площадь; – количество населения для каждого типа жителей. Для типов жителей необходимо хранить: – город проживания; – название; – язык общения. · Вывести информацию обо всех жителях заданного города, разговаривающих на заданном языке. · Вывести информацию обо всех городах, в которых проживают жители выбранного типа. · Вывести информацию о городе с заданным количеством населения · Вывести информацию о самом древнем типе жителей. 11. Планеты. В БД хранится информация о планетах, их спутниках Для планет необходимо хранить: – название; – радиус; – температуру ядра; – наличие атмосферы; – наличие жизни; – спутники. Для спутников необходимо хранить: – название; – радиус; – расстояние до планеты. Для галактик необходимо хранить: – название; – планеты. · Вывести информацию обо всех планетах, на которых присутствует жизнь, и их спутниках в заданной галактике. · Вывести информацию о планетах и их спутниках, имеющих наименьший радиус и наибольшее количество спутников. · Вывести информацию о планете, галактике, в которой она находится, · Найти галактику, сумма ядерных температур планет которой наибольшая. 12. Точки. В БД хранится некоторое конечное множество точек с их координатами. · Вывести точку из множества, наиболее приближенную к заданной. · Вывести точку из множества, наиболее удаленную от заданной. · Вывести точки из множества, лежащие на одной прямой с заданной прямой. 13. Треугольники. В БД хранятся треугольники и координаты их точек на плоскости. · Вывести треугольник, площадь которого наиболее приближена к заданной. · Вывести треугольники, сумма площадей которых наиболее приближена к заданной. · Вывести треугольники, которые помещаются в окружность заданного радиуса. 14. Словарь. В БД хранится англо-русский словарь, в котором для одного английского слова может быть указано несколько его значений и наоборот. Со стороны клиента вводятся последовательно английские (русские) слова. Для каждого из них вывести на консоль все русские (английские) значения слова. 15. Словари. В двух различных базах данных хранятся два словаря: русско-белорусский и белорусско-русский. Клиент вводит слово и выбирает язык. Вывести перевод этого слова. 16. Стихотворения. В БД хранятся несколько стихотворений с указанием автора и года создания. Для хранения стихотворений использовать объекты типа Blob. Клиент выбирает автора и критерий поиска. · в каком из стихотворений больше всего восклицательных предложений? · в каком из стихотворений меньше всего повествовательных предложений? · есть ли среди стихотворений сонеты и сколько их? 17. Четырехугольники. В БД хранятся координаты вершин выпуклых четырехугольников на плоскости. · Вывести координаты вершин параллелограммов. · Вывести координаты вершин трапеций. 18. Треугольники. В БД хранятся координаты вершин треугольников · Вывести все равнобедренные треугольники. · Вывести все равносторонние треугольники. · Вывести все прямоугольные треугольники. · Вывести все тупоугольные треугольники с площадью больше заданной. Вариант B Для заданий варианта В главы 4 создать базу данных для хранения информации. Определить класс для организации соединения (пула соединений). Создать классы для выполнения соответствующих заданию запросов в БД. Тестовые задания к главе 20 Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.028 сек.) |