К списку статей про Java


ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ FIREBIRD ИЗ JAVA


Содержание

Установка

Смена пароля SYSDBA

Создание базы данных

Создание проекта в Eclipse

Написание кода на 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.