Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_Архітектура Caché Java Binding.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
359.42 Кб
Скачать
  1. Доступ до даних за допомогою jdbc

Caché Java Binding іде в комплекті із JDBC драйвером, який підтримує стандарт JDBC 4.0 API і має наступні характеристики:

  • прокручуваний результат вибірки;

  • можливість змінювати дані результату вибірки;

  • пакетне виконання SQL команд;

  • типи даних, що підтримуються в SQL3.

Caché JDBC драйвер також міститься у архіві CacheDB.jar. Слід відзначити, що при простому Java зв’язуванні використовується JDBC драйвер для підключення до БД.

Окрім розглянутого метода CacheDatabase.getDatabase(url, username, pwd) для підключення до БД, використовуючи JDBC, краще виконувати метод getConnection класу com.intersys.jdbc.CacheDataSource, який повертає об’єкт стандартного класу java.sql.Connection:

CacheDataSource ds = new CacheDataSource();

ds.setURL("jdbc:Cache://127.0.0.1:1972/USER");

ds.setUser("_SYSTEM");

ds.setPassword("SYS");

Connection conn = ds.getConnection();

Після отримання об’єкта підключення до БД (як класу java.sql.Connection , так і com.intersys.objects.Database), можна виконувати запити, використовуючи стандартні засоби роботи із БД:

  • клас Statement для виконання запитів до БД;

  • клас PreparedStatement для внесення змін в БД;

  • клас CallableStatement для виконання викликів збережених процедур.

Виконання запитів (select):

Connection conn = JDBCExamples.createConnection();

Statement stmt = conn.createStatement();

String query = "SELECT Name, ContactType FROM JavaTutorial.Contact";

ResultSet rs=stmt.executeQuery(query);

while (rs.next()){

String name = rs.getString(1);

String type = rs.getString(2);

System.out.println("Name: " + name + " Type: " + type);

}

rs.close();

Виконання запитів (insert, update, delete):

Connection conn = JDBCExamples.createConnection();

String sql =

"INSERT INTO JavaTutorial.PhoneNumber (Contact, Number, PhoneNumberType)"+

"VALUES (?,?,?)";

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, contactId);

pstmt.setString(2, number);

pstmt.setString(3, type);

pstmt.executeUpdate();

Виклик збережених процедур:

Connection conn = JDBCExamples.createConnection();

CallableStatement cs = conn.prepareCall

("{call JavaTutorial.Contact_RetrieveByContactType(?)}");

cs.setString(1,type);

ResultSet rs = cs.executeQuery();

while (rs.next()){

System.out.println(rs.getString(1));

}

rs.close();