Приложение. Контрольные вопросы

Раздел: Введение
JDBC - это:
x Прикладной программный интерфейс Java для выполнения SQL-запросов к БД
  Стандартная спецификация СУБД для доступа к ней из Java
  Унифицированный протокол обмена данными между Java-приложением и СУБД
  Набор библиотек доступа к различным СУБД
JDBC умеет производить следующие действия (выбрать все нужное):
x Устанавливать соединение с БД
x Отсылать SQL-запросы в БД
x Обрабатывать результаты SQL-запросов
  Интерпретировать выражения на языке SQL
  Компилировать выражения на языке SQL
  Манипулировать данными в среде с многопользовательским доступом к ним
  Дублировать поведение СУБД с целью большей производительности системы вцелом
  Принимать сетевые подключения
Выберите фразы, характеризующие двухзвенную модель JDBC:
  JDBC-драйвер "понимает" сетевой протокол СУБД
  JDBC-драйвер не "понимает" сетевого протокола СУБД, а использует свой собственный
  JDBC-драйвер двухзвенной структуры работает быстрее, чем в случае трехзвенной структуры
  JDBC-драйвер двухзвенной структуры работает медленнее, чем в случае трехзвенной структуры
  JDBC-драйверу может быть безразлично, с какой именно СУБД он имеет дело
  JDBC-драйвер работает только с данной СУБД или группой схожих СУБД
Обозначение JDBC COMPLIANTTM означает, что (отметить все подходящие):
  В реализации JDBC-драйвера достигнута определенная часть методов спецификации JDBC
  Реализованы все методы спецификации JDBC
  Реализовано не менее 80% методов из спецификации JDBC
  Реализовано не менее 80% методов из спецификации JDBC и некоторое количество методов, не относящихся к спецификации JDBC
  Релизован вводный уровень ANSI SQL 2
  Полностью релизован ISO SQL-1
  Реализован стандартный уровень DDL и определенная часть SQL-2

К разделу "Соединение":
Выберите верные предложения:
  Приложение может соединяться только с одной СУБД (Система Управления Базами Данных, DBMS)
  Приложение может соединяться с несколькими одинаковыми СУБД
  Приложение может соединяться только с одной БД
  Приложение может соединяться с несколькими БД в рамках одной СУБД
  Приложение может открыть только по одному соединению с каждой СУБД
  Приложение может открыть только по одному соединению с каждой БД
Х Приложение может открывать сколько угодно соединений с различными БД одновременно
Метод DriverManager.getConnection:
  Открывает новое соединение с БД
  Открывает новое соединение с СУБД
  Выбирает и возвращает уже открытое соединение из системного списка соединений
  Закрывает соединение с БД
  Возвращает соединение приложения с JDBC-драйвером
Подимя (subname) JDBC-URL это:
  Все, что находится между второй и третьей ":" (jdbc:имя:подимя:...)
  Все, что находится между первой и второй "." (имя.подимя....)
  Все, что находится после второй ":" (jdbc:подпротокол:подимя)
  Все, что находится после второй "." (драйвер.имя.подимя)
Транзакция - это
  Последовательность операций, которые либо все выполняются, либо все откатываются
  Два или более SQL-запроса, выполнение которых происходит параллельно
  Совокупность таблиц, обменивающихся между собой данными по специальному протоколу
  Сессия соединения, открытая пользователем
  Журнал всех изменений в БД
В JDBC-URL указывается:
  Текст запроса на языке SQL
  Текст запроса на языке SQL и входные параметры запроса, формат выходных данных
  Местоположение СУБД в сети, включая IP-адрес имя подпротокола, а также имя пользователя и (возможно) пароль
  Местоположение БД в сети, включая имя подпротокола и подимя, включающее в себя необязательные параметры
  Адрес официального сайта JDBC фирмы JavaSoft

К разделу "Класс DriverManager":
Выберите методы, относящиеся к классу DriverManager:
x getConnection
x getDrivers
x getDriver
x registerDriver
  getDriverForName
  createStatement
  prepareStatement
  executeStatement
  executeSQL
  connect
Загрузка JDBC-драйвера осуществляется так:
x Class.forName("имя_класса_драйвера")
x В системном свойстве jdbc.drivers перечислены все классы драйверов
  В системном свойстве jdbc.drivers перечислены все подпротоколы JDBC-URL
  DriverManager.registerDriver(new Имя_драйвера())
  Имя_драйвера.register()

К разделу "Запрос (Statement)":
Метод prepareStatement:
  Подготавливает запрос, ранее созданный с помощью createStatement(...)
  Подготавливает запрос, ранее созданный с помощью new Statement(...)
  Создает новый подготовленный запрос
  Подготавливает драйвер к выполнению нового запроса
  Устанавливает параметры созданного ранее с помощью new PreparedStatement(...) подготовленного запроса
Методы создания нового объекта класса Statement (con - объект типа Connection, drv - типа Driver):
x con.createStatement()
  con.createStatement("запрос")
  con.prepareStatement()
x con.prepareCall("SQL")
  con.prepareCall("SQL", параметры)
x con.prepareStatement("запрос")
  con.executeQuery("запрос")
  con.execute("запрос")
Метод executeUpdate возвращает:
  Число обработанных строк
x Число обработанных строк или 0, если выполнялся оператор DDL
  Число обработанных строк или -1, если выполнялся оператор DDL
  void
  ResultSet, содержащий все обработанные строки и null, если выполнялся оператор DDL
  ResultSet, содержащий все обработанные строки или имена объектов БД, если выполнялся оператор DDL

"ResultSet (набор данных)":
Для большей переносимости (отметить несколько вариантов) рекомендуется:
X Выходные (OUT) параметры считывать до считывания результатов
  Выходные (OUT) параметры считывать после считывания результатов
X Считывать значения колонок подряд слева направо
  Считывать значения колонок слева направо, можно пропускать некоторые параметры
  Считывать значения колонок только используя имена колонок
  Считывать значения колонок только используя номера колонок
X Использовать методы setXXX, точно соответствующие JDBC-типам данных соответствующих колонок
  Использовать методы setXXX с более приоритетным типом данных, чем JDBC-тип соответствующих колонок
  Использовать getBytes для BLOB
  Использовать getData для BLOB
X Использовать getInputStream для BLOB
Таблица ABC содержит следующие строки:
ID      NAME
--------------------
1     Apple
2     Macintosh
3     Microsoft
4     Javasoft
Что выводится на консоль в этом фрагменте кода:
  Connection con = DriverManager.getConnection(...);
  Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery("select count(*) from ABC where NAME like '%soft'");
  for(int n=0; n<2; n++){
    try{
      System.out.print(String.valueOf(rs.getInt(n)));
    }catch(Exception ex){
      System.out.print("Ошибка");
    }
  }
x ОшибкаОшибка 2Ошибка 0Ошибка Ошибка2 Ошибка0 20 02 Как определить, является ли значение в колонке NULL: x wasNull() после вызова соответствующего метода getXXX wasNull(номер_колонки) wasNull(имя_колонки) isNull() после вызова соответствующего метода getXXX isNull(номер_колонки) isNull(имя_колонки) "PreparedStatement": Выберите фразы, характеризующие подготовленные запросы: x Экземпляры PreparedStatement "помнят" скомпилированные SQL-выражения Экземпляры PreparedStatement "помнят" SQL-выражения в исходном виде x Компиляция запросов обычно происходит на сервере БД Компиляция запросов обычно происходит на месте клиента х В методах execute, executeQuery и executeUpdate добавлено по одному аргументу х Методы execute, executeQuery и executeUpdate в той форме, в которой они унаследованы от Statement, использовать нельзя Нельзя использовать метод close(), унаследованный от Statement Объект java.sql.Timestamp отличается от java.util.Date: Отсутствием временной зоны Наличием временной зоны Отсутствием поля наносекунд Наличием поля наносекунд


Hosted by uCoz