- •Лабораторна робота №1 Використання jdbc
- •Мета роботи:
- •1.2 Короткі теоретичні відомості
- •Інтерфейс java.Sql.Connection
- •Інтерфейс java.Sql.Statement
- •Інтерфейс java.Sql.PreparedStatement
- •Пакетне виконання sql запитів
- •Інтерфейс java.Sql.CallableStatement
- •Інтерфейс java.Sql.ResultSet
- •Інтерфейс javax.Sql.RowSet
- •Закриття об'єктів
- •Результати виконання лабораторної роботи у вигляді текстів методів main та результатів виконання запитів.
- •Результати виконання завдання для самостійної роботи у вигляді копій екранів для різних режимів роботи.
- •. Висновки
Інтерфейс java.Sql.Connection
Інтерфейс Connection визначає багато методів, з призначенням яких можна ознайомитися, відкривши вихідний текст інтерфейсу. Тут ми згадаємо тільки про деякі з них. Реалізація цих методів знаходиться у класах драйвера.
Метод getMetaData() повертає об’єкт типу DatabaseMetaData, який міститьдокладну інформацію про базу даних.
Метод createStatment()повертає об’єкт типу Statement, через який до бази даних передаються SQL оператори.
З об’єктом Connection також пов'язано поняття транзакція. Це умовний пакет інформації, що надсилається до бази даних через один або декілька об'єктів Statement і знаходиться у якомусь буфері. Цей пакет можна або передати базі даних за допомогою методу commit() об'єкту Connection, або відмовитися від передачі за допомогою методу rollback(). За замовчуванням встановлено режим AutoCommit, який передбачає автоматичний виклик методу commit() після завершення виконання кожного SQL оператора.
Інтерфейс java.Sql.Statement
Головне призначення інтерфейсу Statement –визначити методи, за допомогою яких можна передати SQL оператори до бази даних.
Метод int executeUpdate (String sql) використовується для передачі запитів на створення таблиць та оновлення їх змісту.Цей метод повертає число, що дорівнює кількості вдало виконаних оновлень.
Метод executeQuery(String sql) використовується для отримання результату запиту до БД на вибірку інформації. Результат вибірки повертається у вигляді об’єкту типу ResultSet.
Метод boolean execute (String sql) можна використовувати для передачі будь яких операторів SQL. Метод повертає true,якщо перший результат має тип ResultSet. Для доступу до результатів виконання цього методу можна використовувати методиgetResultSet або getUpdateCount.
Для реалізації запиту до БД на вибірку інформації можна використовувати метод executeQuery (String sql). Наприклад, щоб отримати усі дані з таблиці student , можна написати такий код:
Інтерфейс java.Sql.PreparedStatement
Об’єкт типу PreparedStatement можна створити за допомогою методу prepareStatement(String), що надсилається об’єкту Connection. В якості параметру до цього методу передається рядок із SQL-оператором.
SQL-оператор компілюється і зберігається в об'єкті PreparedStatement. Цей об'єкт може бути використаний для виконання декілька разів.
Для виконання підготовлених запитів використовуються методи executeUpdate () або executeQuery() без параметрів.
Якщо SQL-оператор містить параметри, то для того, щоб призначити їм значення, використовують сеттери – методи, що мають префікс set, які вибираються відповідно до типу параметру, що встановлюється. В інших випадках слід використовувати метод setObject. Першим параметром у цих методах є номер параметру, а другим – значення.
Пакетне виконання sql запитів
Іноді потрібно виконати кілька SQL запитів один за іншим. Для таких випадків прийнято використовувати механізм пакетного (batch) виконання SQL запитів. Пакет запитів створюється і наповнюється методом addBatch(String) об’єктом Statment. Для виконання пакету використовується метол executeBatch, який повертає масив цілих чисел, де кожний елемент є результатом виконання окремого запиту.
Щоб визначити, чи підтримує драйвер JDBC пакетні оновлення, можна скористатися методом DatabaseMetaData.supportsBatchUpdates ().
