Слайд 2Поняття про JDBC
Можливості, пов’язані з доступом з Java-програм до баз даних.
Такі засоби

утворюють інтерфейс JDBC (Java DataBase Connectivity).
Базовий пакет - java.sql.
Додаткові можливості - javax.sql.
Слайд 3JDBC: продовження
За задумом - універсальні засоби, придатні для роботи з будь-якою БД.
Для

взаємодії з конкретною БД - драйвер БД, який розробляється постачальником.
Слайд 4Базова схема
Java-застосування
Менеджер драйверів
. . .
Драйвери

Слайд 5Клас DriverManager
Забезпечує реєстрацію драйверів БД, з’єднання з конкретною БД та передачу драйверові

SQL-запити.
Використання DriverManager не дуже рекомендується для розвинених корпоративних застосувань. Рекомендується - на основі реалізації інтерфейса DataSource.
Слайд 6Про драйвери БД
Є різні типи драйверів.
Один з них (мабуть, історично перший) -

т.зв. (міст) JDBC-ODBC.
Найбільш перспективними вважаються драйвери, написані повністю на Java і здатні безпосередньо контактувати з сервером БД.
Слайд 7Приклад роботи з базою даних
public static void main(String args []) throws Exception
![Приклад роботи з базою даних public static void main(String args []) throws](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388967/slide-6.jpg)
{
String dbName="jdbc:odbc:test";
System.out.println("Hello, folks");
String query="SELECT * from student";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(dbName);
Statement statement = conn.createStatement();
ResultSet rs=statement.executeQuery(query);
while (rs.next()) {
System.out.println(rs.getString("name")+" "+rs.getString("Rating"));}
rs.close();
}
Слайд 8Більш рекомендована схема
try { отримати з'єднання
try { операції}
finally {conn.close();}
}
catch (SQLException se)

{
повідомдення про помилку
}
Слайд 9Оновлення БД
Якщо дається запит на оновлення бази даних, замість методу executeQuery слід

використовувати метод executeUpdate (або execute).
Слайд 10Підготовлені запити (Prepared Statements)
підвищення ефективності;
можна задавати параметри запиту.

Слайд 11Prepared Statements: приклад
BufferedReader br=new BufferedReader(new InputStreamReader
(System.in));
System.out.println("Enter city");
String town=br.readLine();
String query="SELECT * from city

where town=?";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(dbName);
PreparedStatement statement = conn.prepareStatement(query);
statement.setString(1,town);
ResultSet rs=statement.executeQuery();