java20-nesortirovannoe (java20 ([НЕСОРТИРОВАННОЕ]))

2016-10-15СтудИзба

Описание презентации

Презентация из архива "java20 ([НЕСОРТИРОВАННОЕ])", который расположен в категории "". Всё это находится в предмете "прочее" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "прочее" в общих файлах.

Просмотр презентации онлайн

Текст из слайда

JAVA-ТЕХНОЛОГИЯ
Сафонов Владимир Олегович
Профессор кафедры информатики,
руководитель лаборатории Javaтехнологии
(http://polyhimnie.math.spbu.ru/jtl)
Email: vosafonov@gmail.com
Лекция 20
JDBC

JDBC




Летом 1996 года компания Sun выпустила
первую версию интерфейса для организации
доступа Java-приложений к базам данных - JDBC
(Java Data Base Connectivity)
Набор интерфейсов и классов составляет пакет
java.sql, входящий в JSE. Имеется также пакет
javax.sql – поддержка серверных возможностей
Интерфейс позволяет соединяться с базой
данных, запрашивать и обновлять данные с
помощью языка структурированных запросов
(Structured Query Language - SQL)
Sun также разработала собственную открытую
СУБД - MySQL
(C) В.О. Сафонов. 2013

Драйвер JDBC

Кроме классов с методами доступа к
базе данных, для каждой необходим
драйвер JDBC – промежуточная
программа, реализующая методы
JDBC

Загрузка и выгрузка таких драйверов
осуществляется с помощью класса
DriverManager.
(C) В.О. Сафонов. 2013

Драйвер JDBC
(C) В.О. Сафонов. 2013

Типы драйверов

Существует 4 типа драйверов JDBC:

1. Драйвер, реализующий методы
JDBC вызовами функций ODBC (Open
DataBase Connectivity). Sun включила в
состав JDK один из таких драйверов –
“мост” JDBC/ODBC
(C) В.О. Сафонов. 2013

Пример загрузки
драйвера
try {
Class joDriver =
sun.odbc.JdbcOdbcDriver.class;
}
catch(ClassNotFoundException e) {
System.err.println(
"JDBC/ODBC driver not found");
}
(C) В.О. Сафонов. 2013

Пример загрузки
драйвера

Драйвер также можно
зарегистрировать вручную, загрузив
его класс.
Class.forName("oracle.jdbc.driver.OracleDriver");

Такой подход применяется, если
диспетчер не может загрузить
драйвер.
(C) В.О. Сафонов. 2013

Типы драйверов



2. Драйвер, реализующий методы JDBC
вызовами функций API (Application
Programming Interfaces) самой базы данных.
3. Драйвер, реализующий методы JDBC
вызовами функций сетевого протокола,
независимого от базы данных
4. Драйвер, реализующий методы JDBC
вызовами функций сетевого протокола
базы, т.е. транслирующий JDBC-запросы
непосредственно в протокол конкретной
базы данных
(C) В.О. Сафонов. 2013

SQL

SQL - универсальный язык,
применяемый для создания,
модификации и управления данными
в базах данных.

Главное преимущество –
независимость от конкретной базы
данных.

Пакет JDBC можно рассматривать как
API для взаимодействия
с
SQL
(C) В.О. Сафонов. 2013
командами доступа к базе данных.

SQL - команды

Основные команды:
create table …()
select … from … where
update … set …where
insert into … values()
(C) В.О. Сафонов. 2013

Пример SQL

Создадим таблицу:
CREATE TABLE "USERS"
( "ID_USER" NUMBER,
"LOGIN" VARCHAR(50),
"PASSWORD" VARCHAR(50),
CONSTRAINT "USERS_PK" PRIMARY KEY
("ID_USER") ENABLE )
/
(C) В.О. Сафонов. 2013

Пример SQL

Заполним созданную таблицу
данными:
INSERT INTO USERS VALUES (
1, “login1“, “pass1“)
/
аналогично:
2, “login2“, “pass2“
3, “login3“, “pass3“
(C) В.О. Сафонов. 2013

Пример SQL
(C) В.О. Сафонов. 2013

Connection

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

Для создания подключения
необходимо указать место
расположения базы данных, а также
(C) В.О. Сафонов. 2013
дополнительную
информацию о ней

URL базы данных

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

Имеет следующий формат:
jdbc:subprotocol:extra_name
(C) В.О. Сафонов. 2013

URL базы данных

Драйвер типа 1:
jdbc:odbc:<имя_источника_данных>;
параметр=значение;параметр=знач
ение;

Драйвер типа 4:
jdbc:oracle:thin:@<имя_машины>:
(C) В.О. Сафонов. 2013

Connection
Connection conn =
DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE",
"test", "123");


Login: test
Password: 123
(C) В.О. Сафонов. 2013

Statement

Для выполнения SQL-команд нужно
создать объект Statement
Statement stat =
conn.createStatement();

Затем создаем строку с SQL-командой
String command = “SELECT * FROM
(C) В.О. Сафонов. 2013
USERS”;

ExecuteQuery(), ExecuteUpdate()

Чтобы выполнить команду, необходимо
вызвать метод executeQuery(). Он
возвращает объект ResultSet, который
можно использовать для просмотра
результатов
ResultSet rs =
stat.executeQuery(command);

executeUpdate() используется для SQLкоманд UPDATE. Метод возвращает
количество строк,
в
(C) В.О.полученных
Сафонов. 2013
результате выполнения команды

ResultSet API
boolean next() – используется для
анализа набора результатов
while (rs.next()){
}
Xxx getXxx(int columnNumber)
Xxx getXxx(String columnName)
int fndColumn(String columnName)
void close()
(C) В.О. Сафонов. 2013

Пример
(C) В.О. Сафонов. 2013

Пример

В качестве результата программа
выведет первый столбец таблицы
1
2
3

Если поменять строку
System.out.println(rs.getString(2));
то результатом будет второй столбец
(login)
(C) В.О. Сафонов. 2013

PreparedStatement

Если несколько раз повторяется
похожий SQL-запрос, то имеет смысл
создать предварительно
подготовленную SQL-команду
String prStr = “SELECT LOGIN FROM
USERS WHERE ID_USER=?”
PreparedStatement pst =
conn.prepareStatement(prStr);
pst.setInt(1,2);
(C) В.О. Сафонов. 2013

Пример 2
(C) В.О. Сафонов. 2013

Пример 2

Результатом работы это программы
будет
login2

Меняя запросы и параметры
вызываемого метода, можно получить
интересующие результаты обо всех
данных, хранящихся в базе данных и
в данной таблице, в частности.
(C) В.О. Сафонов. 2013

Транзакции

Группа команд может быть
оформлена в виде транзакции,
которая может быть либо закончена
после успешного выполнения всех
команд, либо отвергнута, если при
выполнении хотя бы одной возникла
ошибка.
conn.setAutoCommit(false);
(C) В.О. Сафонов. 2013

Транзакции
Statement stat =
conn.createStatement();
stat.executeUpdate(cmd1);
stat.executeUpdate(cmd2);
conn.commit();
или
conn.rollback();
(C) В.О. Сафонов. 2013

Точки сохранения

Повысить возможности контроля за
процессом отката позволяют точки
сохранения
Statement stat =
conn.createStatement();
stat.executeUpdate();
Savepoint svpt = conn.setSavePoint();

if (…) conn.rollback(svpt);
conn.commit();(C) В.О. Сафонов. 2013

Пакетное обновление

Если требуется выполнить несколько
команд, например, вставки INSERT, то
для повышения производительности
можно использовать пакеты
обновления(batch update)
Statement stat =
conn.createStatement();
String command = “CREATE TABLE …”;
stat.addBatch(command);
(C) В.О. Сафонов. 2013

Пакетное обновление
while (…) {
command = “INSERT INTO …
VALUES (“ +…+ ”)”;
stat.addBatch(command);
}
int[] counts = stat.executeBatch();
(C) В.О. Сафонов. 2013

Сравнение с .NET

.NET: Реализован LINQ (LanguageIntegrated Query) – более тесная
интеграция приложений с СУБД
(C) В.О. Сафонов. 2013

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее