Реферат: Работа с базами данных в JAVA на основе соединения JDBC

🛑 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
кафедра информационных технологий и автоматизированных систем
«Работа с базами данных в JAVA на основе соединения JDBC»
Как мы знаем, SQL-запросы предварительно компилируются по месту исполнения. Следовательно, чтобы ускорить их выполнение следует компиляцию запросов выполнять предварительно. Это реализуется командой prepareStatement класса PreparedStatement. Данная команда позволяется использовать SQL-запросы с параметрами. Параметры вставляются в запросы как знак вопроса. Сначала рассмотрим, как использовать инструкцию prepareStatement на следующем примере:
Connection db=DriverManager.getConnection(url);
String sq_str="SELECT * FROM stud"; //Строка запроса на выборку
PreparedStatement prst= db.prepareStatement(sq_str);
ResultSet rs= prst.executeQuery(); //Переменная rs получает набор выбранных записей
while(rs.next()){ //Выполняем просмотр записей набора
String s=rs.getString("name")+ " "+ rs.getInt("groupp");
System.out.println("my-"+s);}//выводим запись на экран
{System.out.println("Error has arised here:"+er);}
Инструкция на выборку создается в строке
PreparedStatement prst= db.prepareStatement(sq_str);
Скомпилированный заапрос выполняется обычным образом:
Теперь предположим, что мы хотим выполнить выборку студентов, чей возраст превосходит 19 лет. В этой связи нам надлежит ввести в запрос параметр. Делается это таким образом:
Connection db=DriverManager.getConnection(url);
String sq_str="SELECT * FROM stud where age> ?"; //Строка запроса на //выборку с параметром
PreparedStatement prst= db.prepareStatement(sq_str);
prst.setInt(1,23); //установка значения параметра
ResultSet rs= prst.executeQuery(); //Переменная rs получает набор выбранных записей
while(rs.next()){ //Выполняем просмотр записей набора
String s=rs.getString("name")+ " "+ rs.getInt("groupp");
System.out.println("my-"+s);}//выводим запись на экран
{System.out.println("Error has arised here:"+er);}
Сначала создается запрос на выборку:
String sq_str="SELECT * FROM stud where age> ?"; //Строка запроса на //выборку с параметром
В этом запросе место параметра отмечено знаком вопроса. Установка значения параметра реализуется следующим образом:
Параметрами метода setInt являются: номер вставляемого параметра (в нашем примере – 1) и значение вставляемого параметра (23) для поля age. Текстовые значения вставляются с помощью метода setString.
Обратимся к вызову хранимых процедур.
В отличие от запросов с параметрами здесь используют класс CallableStatement. Таким образом, запрос на вызов хранимой процедуры может иметь такой вид:
CallableStatement cs = db.prepareStatement(“call proc1(?,?)”);
В создаваемом запросе указывается имя вызываемой процедуры proc1 и обозначаются позиции для параметров знаком ?. Установка значений параметров производится уже знакомым нам образом. Теперь для иллюстрации приведем код приложения, которое соединяется с сервером SQL Server 2000 и вызывает хранимую процедуру на сервере. Эта процедура имеет следующий вид.
В этой процедуре имеется выходной параметр типа varchar. В теле процедуры он получает значение текстовой строки "Hello From SQL Server". Таким образом, наша задача состоит в том, чтобы правильно соединиться с сервером SQL Server, создать в приложении вызов процедуры на сервере и установить выходной параметр. Этот параметр мы должны будем прочитать. Приведем текст готового приложения и дадим к нему пояснения.
public static void main(String args[])
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
{System.out.println("Classdefnotfound"+e);
Connection db=DriverManager.getConnection(url);
CallableStatement cst= db.prepareCall("{call proc1(?)}");
cst.registerOutParameter(1, Types.VARCHAR,16);
System.out.println(str);// выводим ответ процедуры на экран
db.close(); //Закрываем соединение.
{System.out.println("Error has arised here:"+er);}
Вызов хранимой процедуры выполняется посредством класса CallableStatement. Инструкция по вызову процедуры предварительно подготавливается в команде:
CallableStatement cst= db.prepareCall("{call proc1(?)}");
Знак вопроса в скобках определяет место для параметра. В нашем примере используется один выходной параметр. Каждый выходной параметр должен быть зарегистрирован. Это выполняет команда:
cst.registerOutParameter(1, Types.VARCHAR,16);
Первый операнд данной команды определяет номер параметра (нумерация начинается с 1). Второй операнд соответствует типу параметра (VARCHAR), третий операнд устанавливает размер параметра. Типы параметров прописываются в пакете java.sql.*. Другие типы параметров приведены в таблице 1, где указано таккже их соответствие типам Java.
Выполнение процедуры реализуется командой
Для получения значения, возвращаемого процедурой или функций следует использовать такой синтаксис определения вызова:
{? = call procedure_name[(?, ?, ...)]}
При передаче входных параметров в хранимую процедуру их следует предварительно установить. Это делается с помощью метода setXXX.
Рассмотрим следующую хранимую процедуру.
CREATE PROCEDURE [dbo].proc2 @nomer int , @name char(30) OUTPUT, @group int OUTPUT
SET @mycur=CURSOR SCROLL STATIC FOR
FETCH ABSOLUTE @nomer FROM @mycur INTO @name,@group
Заголовок этой процедуры имеет такой вид:
CREATE PROCEDURE [dbo].proc2 @nomer int , @name char(30) OUTPUT, @group int OUTPUT
Из него видно, что процедура получает один входной параметр – nomer (номер записи) и возвращает два выходных параметра – name (имя) и group (группу).
Теперь приведем текст java-приложения, которое вызывает данную хранимую процедуру.
public static void main(String args[])
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
{System.out.println("Classdefnotfound"+e);
Connection db=DriverManager.getConnection(url);
CallableStatement cst= db.prepareCall("{call proc2(?,?,?)}");
cst.registerOutParameter(2, Types.VARCHAR,16);
cst.registerOutParameter(3, Types.INTEGER);
String str=cst.getString(2)+" =="+cst.getInt(3);
System.out.println(str);// выводим ответ процедуры на экран
db.close(); //Закрываем соединение.
{System.out.println("Error has arised here:"+er);}
Обратим внимание на установку единственного входного параметра:
Первый операнд этой команды задает номер параметра, второй – его значение. Получение значений возвращаемых процедурой, выполняется командой
String str=cst.getString(2)+" =="+cst.getInt(3);
Здесь формируется строка, состоящая из двух выходных параметров, получаемых с помощью метода getXXX(n) , где n – номер параметра.
В заключение отметим, что параметры могут иметь тип INOUT, т.е. быть одновременно входными и выходными. Параметр такого типа перед вызовом процедуры должен получить значение и быть зарегистрированным.
1. Меградж З. Разработка приложений для электронной коммерции на ORACLE и JAVA. Вильямс, 2000, 328с.
2. Пирогов В.П. MS SQL Server 2000. Управление и программирование. – СПб. БХВ.-2005,-600с.
3. Холл М., Браун Л. Программирование для WEB. Вильямс, 2002, - 1280с.
Название: Работа с базами данных в JAVA на основе соединения JDBC
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 13:59:30 14 октября 2008 Похожие работы
Просмотров: 64
Комментариев: 17
Оценило: 3 человек
Средний балл: 5
Оценка: неизвестно Скачать
Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.
Реферат: Работа с базами данных в JAVA на основе соединения JDBC
Линейные И Квадратные Неравенства Контрольная Работа
Реферат по теме Позитивное восприятие мира как свобода выбора
2 Закон Ньютона Задачи Контрольная Работа
Сочинение: Астрологический Принцип Прозерпина
Курсовая работа: Проектування логістичної системи торгівельного підприємства
Сочинение Мое Любимое Произведение Литературы
Реферат На Тему Уголовный Кодекс Российской Федерации
Реферат О Музее Духовная Сфера
Дипломная работа по теме Исследование становления отечественного опыта кредитования за договорами ипотеки
Контрольная работа по теме Пролин и его производные
Реферат: 1. понятие о личности и групповом процессе 5
Отчет по практике по теме Растительный мир Кольского полуострова
Дипломная работа: Екологічна оцінка стану ропи Куяльницького лиману
Дипломная работа по теме Европейский опыт и эволюция русского законодательства в первой половине XVII века
Обломов Его Характер Сущность И Судьба Сочинение
Реферат На Тему Здоровый Образ Жизни Гто
Курсовая работа по теме Предпосылки и показатели успешной работы предприятия
Без Беды Друга Не Узнаешь Сочинение
Реферат На Тему Сравнительная Характеристика Произведений "Евгений Онегин" А.С. Пушкина И "Анна Снегина" С.А. Есенина
Контрольная Работа На Тему Анализ Себестоимости Продукции
Изложение: Виктор Мари Гюго. Отверженные
Реферат: Прогнозирование уровня жизни населения
Статья: Искусство Киевской Руси