Мир InterBase


Пример приложения на Java - часть 2


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.




Начало  Назад  Вперед



Книжный магазин