Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1_2013_2014 / java20.pptx
Скачиваний:
129
Добавлен:
16.04.2015
Размер:
395.1 Кб
Скачать

Пример

Пример

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

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

Пример 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);

(C) Вconn.О. Сафонов.commit();. 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

Соседние файлы в папке java1_2013_2014