Шрифт:
ResultSet rs = null;
try{
// выполняем запрос и помещаем результат
//в объект ResultSet rs
rs = stmt.executeQuery(sSQL);
}catch( Java, sql. SQL/Exception EsqlConn) {
System.err.printIn(EsqlConn.getMessage);
}
// распечатываем результат на экране
try{
while (rs.next) {
int id = rs.getlntC'ID");
String s = rs.getStringt"NAME");
System.out.println(id + " " + s) ;
}
}catch(Java.sql.SQLException EsqlFetch){
System.err.println(EsqlFetch.getMessage);
}
}
}
Теперь можно попытаться откомпилировать и запустить эту тестовую программу следующим образом:
Java.exe SampleInterBase2JAVA
Если все установлено правильно и существует такая база, то вы получите два столбца с результатами. Однако есть одна особенность, которую необходимо знать для работы из Java с базами данными, содержащими кириллицу.
Если вы следовали рекомендациям, приведенным в главе "Русификация InterBase" (ч. 1), то ваша тестовая база, в которой предполагается хранить русские символы, создана с использованием набора символа (charser) WIN1251.
Если попытаться получить из базы данных строки, содержащие русские символы описанным в приведенном выше примере способом, то в результате выборки будут находиться символы с некорректной кодировкой, которые прочитать будет невозможно. Чтобы заставить JDBC-драйвер InterBase использовать правильный набор символов для работы с кириллицей, необходимо указать его в параметрах соединения. Для этого следует создать объект Properties и поместить в него параметры соединения. За набор символов, который будет использоваться для соединения с базой данных, отвечает параметр charset. Вот пример соединения:
// задаем параметры соединения строку соединения,
// имя пользователя, пароль и набор символов
String url = "jdbc:InterBase://localhost/C:/Database/test.gdb";
String uName = "SYSDBA";
String pass = "masterkey";
String charSet="cp!251";
// создаем структуру для хранения параметров соединения
Properties prop = new Properties;
prop.put("user", uName);
prop.put("password", pass);
prop.put{"charset", charSet);
// получаем соединение с базой данных InterBase
// с указанием используемого набора символов
Connection db = DriverManager.getConnection(url, prop);
Таким образом разрешается проблема в приложениях Java с работой с кириллическими символами в базах данных InterBase.
Заключение
В этой главе описан JDBC-драйвер для InterBase и его клонов - InterClient и приведен небольшой пример приложения на Java, подключающегося к базе данных InterBase и выполняющего простейший запрос. Основная идея этой главы в том, чтобы показать, насколько легко связать InterBase и Java.
Администрирование и архитектура InterBase
Установка InterBase - взгляд изнутри
InterBase как встраиваемая СУБД
Материал этой главы будет посвящен углубленному рассмотрению процесса установки Intel Base и его клонов на ОС Windows. В этой главе мы попытаемся понять, что значит определение "встроенная" (embedded) СУБД, которое так часто используют по отношению к InterBase.
Почему изложение материала этой главы ориентировано на ОС Windows? Что бы ни говорили поклонники Linux, но наиболее значительный процент серверных инсталляций InterBase осуществляется именно под Windows, а что касается количества клиентских установок, то ОС Windows здесь вообще вне конкуренции. Поэтому мы рассмотрим вопросы встраивания InterBase именно в Windows-приложения
Легковесность и простота администрирования делают InterBase идеальным кандидатом для создания тиражируемых программных систем, которые функционируют по принципу "установил и забыл". СУБД в таком приложении играет "закулисную" роль - в идеале пользователь не должен ничего знать о том, какая СУБД обслуживает его запросы. К встроенной СУБД предъявляются высокие требования по надежности и особые условия администрирования, сводящие к минимуму участие администратора СУБД.