
- •JAVA-ТЕХНОЛОГИЯ
- •JDBC
- •Драйвер JDBC
- •Драйвер JDBC
- •Типы драйверов
- •Пример загрузки
- •Пример загрузки
- •Типы драйверов
- •SQL - команды
- •Пример SQL
- •Пример SQL
- •Пример SQL
- •Connection
- •URL базы данных
- •URL базы данных
- •Connection
- •Statement
- •ExecuteQuery(), ExecuteUpdate()
- •ResultSet API
- •Пример
- •Пример
- •PreparedStatement
- •Пример 2
- •Пример 2
- •Транзакции
- •Транзакции
- •Точки сохранения
- •Пакетное обновление
- •Пакетное обновление
- •Сравнение с .NET

Пример

Пример
В качестве результата программа выведет первый столбец таблицы
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