ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ FIREBIRD ИЗ JAVA
Содержание
Установка
С сайта http://www.firebirdsql.org/ скачиваем и устанавливаем Firebird.
Существует четыре различных взаимозаменяемых архитектуры сервера.
Классик сервер (англ. ClassicServer) — один процесс на одно соединение; поддержка многопроцессорных машин.
Суперсервер (англ. SuperServer) — все соединения используют один процесс, меньшие требования к памяти при большем быстродействии; для однопроцессорных машин.
СуперКлассик (англ. SuperClassic Server) — один процесс, но свой поток на каждое соединение. Данная архитектура введена в версии 2.5.
Встраиваемая (англ. Embedded) версия — весь движок содержится в одной библиотеке с именем клиентской библиотеки сервера, идеально подходит для однопользовательских систем, не требует инсталляции.
Все архитектуры используют одинаковый формат файла базы данных, таким образом в любой момент можно переключиться на другую архитектуру.
Ставьте себе классик сервер. Не ошибётесь.
Смена пароля SYSDBA
Меняем пароль пользователя SYSDBA. SYSDBA - это администратор сервера. Мы поменяем его пароль на 123, чтобы
было легче его вспомнить. Это делается с помощью утилиты gsec.
В Windows:
c:\Program Files\Firebird\bin>gsec
В Linux:
>sudo gsec
Дальше в открывшейся программе:
GSEC> modify SYSDBA -pw 123
GSEC> quit
Создание базы данных
Создайте каталог, в котором будут хранится базы данных. В Windows думаю сами разберётесь. Дальше буду писать только про linux. Для Windows просто поменяйте пути /var/firebird на, например, C:\firebird.
sudo mkdir /var/firebird
chmod 777 /var/firebird
Установите какую-нибудь визуальную утилиту для управления базой данных. Например, FlameRobin (в поисковике легко ищется). Создаёте с её помощью базу данных с именем /var/firebird/firebird_db1.
Выполните этот SQL запрос на созданной базе данных:
CREATE TABLE PEOPLES
(
NAME VARCHAR(50),
AGE INT,
PRIMARY KEY (name)
);
Создастся таблица PEOPLES.Теперь заполним её значениями:
INSERT INTO PEOPLES (NAME, AGE)
VALUES (
'Вася',
10
);
INSERT INTO PEOPLES (NAME, AGE)
VALUES (
'Петя',
25
);
INSERT INTO PEOPLES (NAME, AGE)
VALUES (
'Коля',
34
);
Создание проекта в Eclipse
Создадим в Eclipse новый проект firebird_db1. Вызовем контекстное меню у созданного проекта. Скачаем firebird JDBC Driver с сайте http://www.firebirdsql.org/. Он нам даст возможность соединиться из Java с базой данных Firebird. Распаковываем архив. Находим файлы jaybird-full-2.1.6.jar, libjaybird21.dll, libjaybird21.so. В разделе Java Build Path, вкладка Libraries. Добавим туда (Add External JARs...) jaybird-full-2.1.6.jar. Раскроем добавленную библиотеку и в Native library location укажем путь к папке на диске, где хранятся нативные реализации (libjaybird21.so для Linux и libjaybird21.dll для Windows).
Написание кода на Java
Добавляем новый класс к проекту FirebirdExample1.java:
package firebirdexamples;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class FirebirdExample1 {
/**
* @param args
*/
public static void main(String[] args) {
//Путь к базе данных. База данных должна уже существовать.
String strDatabasePath = "/var/firebird/firebird_db1";
// По этому URL будет происходить подключение к базе данных.
// Обратите внимание: URL содержит путь к базе данных.
// URL действителен для firebird. Для других СУБД он будет другим.
String strURL="jdbc:firebirdsql:local:"+strDatabasePath;
// Логин, с помощью которого подключаемся к базе данных.
String strUser="SYSDBA";
// Пароль.
String strPassword="123";
// SQL запрос, который будет выполняться.
String strSQL="SELECT a.NAME, a.AGE FROM PEOPLES a";
try
{
// Инициализируемя Firebird JDBC driver.
// Эта строка действительна только для Firebird.
// Для других СУБД она будет немного видоизменена.
Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
}
catch(IllegalAccessException ex)
{
ex.printStackTrace();
}
catch(InstantiationException ex)
{
ex.printStackTrace();
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace();
}
Connection conn=null;
try
{
//Создаём подключение к базе данных
conn = DriverManager.getConnection(
strURL,
strUser, strPassword);
if (conn==null)
{
System.err.println("Could not connect to database");
}
// Создаём класс, с помощью которого будут выполняться
// SQL запросы.
Statement stmt = conn.createStatement();
//Выполняем SQL запрос.
ResultSet rs = stmt.executeQuery(strSQL);
// Смотрим количество колонок в результате SQL запроса.
int nColumnsCount = rs.getMetaData().getColumnCount();
// Выводим результат.
while(rs.next())
{
System.out.println();
for (int n=1;n < nColumnsCount+1;n++)
{
Object obj = rs.getObject(n);
if (obj!=null)
{
System.out.print(obj+" | ");
}
}
}
// Освобождаем ресурсы.
stmt.close();
conn.close();
}
catch(SQLException ex)
{
ex.printStackTrace();
}
}
}
Запускаем на исполнение и видим результат:
Вася | 10 |
Петя | 25 |
Коля | 34 |
Вот и всё. Это ваш первый шаг к созданию клиентского приложения для работы с Firebird на Java.