Firebird соединение с Java
Я установил Firebird 2.1 на Windows Xp и использовал драйвер firebirdsql.jdbc-2.1.6 для соединения с Java. Код:
Class.forName("org.firebirdsql.jdbc.FBDriver");
connection = DriverManager.getConnection(
"jdbc:firebirdsql://localhost/3050//C:/firebird/database/EMPLOYEE.FDB",
"test","test");
Я получаю следующую ошибку:
Вызывается: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544375. недоступная база данных Причина: недоступная база данных в org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:122) в org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:140) в java.sql.DriverManager.getConnection(DriverManager.java:525) в java.sql.DriverManager.getConnection(DriverManager.java:171)
Пожалуйста помоги.
Проблема решена: На самом деле у меня была проблема с файлом JAR, который я получил от
http://mirrors.ibiblio.org/pub/mirrors/maven2
Я скачал jaybird-full-2.1.6.jar с официального сайта firebird, и проблема была решена.
Правильный URL-адрес
"jdbc:firebirdsql://localhost:3050/C:\\firebird\\database\\EMPLOYEE.FDB"
Я пробовал этот URL ранее, но он не работал из-за проблемы с флягой.
7 ответов
Из https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html
Формат URL по умолчанию:
"jdbc:firebirdsql://host[:port]/<database>"
Устаревший, но все еще поддерживаемый устаревший формат URL:
"jdbc:firebirdsql:host[/port]:<database>"
Тогда правильный URL должен быть:
"jdbc:firebirdsql://localhost:3050/C:/firebird/database/EMPLOYEE.FDB"
Как отмечает @Thorbjørn Ravn Andersen, ваш URL JDBC Jaybird неверен. Синтаксис jdbc:firebirdsql:[host[/port]:]<database>
, Вам нужно двоеточие между хостом / портом и путем к базе данных. Возможно, что-то вроде этого:
"jdbc:firebirdsql://localhost/3050:C:\\firebird\database\EMPLOYEE.FDB"
Ой, я ушел в ведущие косые черты; попробуй это:
"jdbc:firebirdsql:localhost/3050:C:\\firebird\database\EMPLOYEE.FDB"
Приложение: Вы можете запустить список распространенных ошибок. Кроме того, мои файлы базы данных Firebird заканчиваются на .fdb
, но часто задаваемые вопросы упоминают .gdb
, Это не помешает проверить.
Просмотр документации на этом сайте: http://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html, пункт 3.1.
Кажется, что после [порта] у вас должна быть косая черта "/" или двойная косая черта "//" на случай, если вы захотите подключиться на сервере Linux.
Для подключения к базе данных, расположенной на удаленной машине или в облаке (linux), используйте следующую ссылку.
JDBC:firebirdsql:34.212.208.251/3050:/opt/app/db/sample_training.fdb
Пример строки подключения для Apache Tomcatproperties.xml
с указанным IP, портом, псевдонимом базы данных и кодировкой:
<entry key="db.url">jdbc:firebirdsql:127.0.0.1/2222:my-db-alias?lc_ctype=WIN1251</entry>
Вы должны попробовать это. У меня работает на Windows.
jdbc:firebirdsql://localhost:3050/C:\firebird\database\EMPLOYEE.FDB
Также убедитесь, что вы добавили исключение для порта 3050 в брандмауэр.
Ваш URL, скорее всего, поврежден для этого драйвера.
Прикрепите фактический источник к банке и установите точку останова в FBDataSource.getConnection(...) и посмотрите, какие значения действительно присутствуют при попытке установить соединение.
Вы абсолютно уверены, что комбинация имени хоста с портом совпадает с путем к файлу FDB?