0

Firebird 組み込み DB を Hibernate と一緒に使用しようとしていますが、データベースを作成しようとすると次のエラーが発生します。

Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544344. I/O error during "CreateFile (open)" operation for file "D:\DB\FIREBIRD.FDB"
Error while trying to open file
null
    at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:123)
    at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:126)
    at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:204)
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)
    ... 32 more
Caused by: org.firebirdsql.gds.GDSException: I/O error during "CreateFile (open)" operation for file "D:\DB\FIREBIRD.FDB"
Error while trying to open file
null
    at org.firebirdsql.gds.impl.jni.JniGDSImpl.native_isc_attach_database(Native Method)
    at org.firebirdsql.gds.impl.jni.BaseGDSImpl.iscAttachDatabase(BaseGDSImpl.java:158)
    at org.firebirdsql.jca.FBManagedConnection.<init>(FBManagedConnection.java:105)
    at org.firebirdsql.jca.FBManagedConnectionFactory.createManagedConnection(FBManagedConnectionFactory.java:490)
    at org.firebirdsql.jca.FBStandAloneConnectionManager.allocateConnection(FBStandAloneConnectionManager.java:69)
    at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:120)
    ... 36 more

私が今までやってきたこと:

  1. 休止状態の構成を設定しました。
    Driver = "org.firebirdsql.jdbc.FBDriver",
    Dialect = "org.hibernate.dialect.FirebirdDialect",
    Url = "jdbc:firebirdsql:embedded:D:\DB\FIREBIRD.FDB",

  2. jaybird-full jar をクラスパスに追加しました。

  3. jaybird22.dllfbembed.dll (フォルダー全体) をパスに追加しました。

取得したdllを削除すると、jaybird22.dllが見つからないという例外が発生するため、dllがロードされているようです。

何が間違っている可能性がありますか?

4

1 に答える 1

1

私が見逃していたステップは、データベースファイルを手動で作成していたようです:

FBManager manager = new FBManager(GDSType.getType("EMBEDDED"));
manager.start();
manager.createDatabase(myDbFile, username, password);
manager.stop();
于 2013-06-13T05:28:10.940 に答える