Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 401
Ильдар Шаукатович Хабибуллин
Существуют четыре типа драйверов JDBC:
□ драйвер, реализующий методы JDBC вызовами функций ODBC. Это так называемый
□ драйвер, реализующий методы JDBC вызовами функций API самой СУБД. В этом случае на машине должен быть установлен клиент СУБД;
□ драйвер, реализующий методы JDBC вызовами функций сетевого протокола, независимого от СУБД, например HTTP. Этот протокол должен быть, затем, реализован средствами СУБД;
□ драйвер, реализующий методы JDBC вызовами функций сетевого протокола СУБД.
Перед обращением к базе данных следует установить нужный драйвер, например мост JDBC—ODBC:
try{
Class dr = sun.jdbc.odbc.JdbcOdbcDriver.class;
}catch(ClassNotFoundException e){
System.err.println("JDBC-ODBC bridge not found " + e);
}
Объект dr не понадобится в программе, но таков синтаксис.
Другой способ установки драйвера показан в листинге 25.1.
После того как драйвер установлен, можно связаться с базой данных. Методы связи описаны в интерфейсе Connection. Экземпляр класса, реализующего этот интерфейс, можно получить одним из статических методов getConnection( ) класса DriverManager, например:
String url = "jdbc:odbc:mydb";
String login = "admin";
String password = "1nF4vb";
Connection con = DriverManager.getConnection(url, login, password);
Обратите внимание на то, как формируется адрес базы данных url. Он начинается со строки "jdbc:", потом записывается
Связавшись с базой данных, можно посылать запросы. Запрос хранится в объекте, реализующем интерфейс Statement. Этот объект создается методом createStatement( ), описанным в интерфейсе Connection. Например:
Statement st = con.createStatement();
Затем запрос (query) заносится в этот объект методом execute () и потом выполняется методом getResultSet(). В простых случаях это можно сделать одним методом
executeQuery(), например:
ResultSet rs = st.executeQuery("SELECT name, code FROM tbl1");
Здесь из таблицы tbl1 извлекается содержимое двух столбцов name и code и заносится в объект rs класса, реализующего интерфейс ResultSet.
SQL-операторы insert, update, delete, create table и др. в простых случаях выполняются методом executeUpdate ().
Остается методом next () перебрать элементы объекта rs — строки полученной выборки - и извлечь данные многочисленными методами getXxx () интерфейса ResultSet, на
пример: while (rs.next()){
emp[i] = rs.getString("name"); num[i] = rs.getInt("code"); i++;