2017-09-20 31 views
0

私はDerby埋め込みDBを使用して、Junitsのスイートを実行するJava + Springプロジェクトに取り組んでいます。私は直接junitテストを通してアクセスするのではなく、Squirrel SQLクライアントを使ってEmbedded DBに問い合わせることができます。この理由は、私は非常に複雑なデータ構造を扱っているため、エディタを使用したクエリはテストケースを構築するのに非常に役立ちます。デバッグでJUnitを実行すると、データベースが初期化されてそこに残った後にブレークポイントが設定されます。つまり、この時点で組み込みDBが作成されます。以下は、DBを配線するスプリング構成を示しています。以下はリスのダービー埋め込みDBに接続

<bean id="targetDataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" /> 
    <property name="url" value="jdbc:derby:memory:unitTestDB;create=true" /> 
    <property name="username" value="sa" /> 
    <property name="password" value="" /> 
</bean> 

私はJUnitのスイートが使用するのと同じドライバを使用して、以下のように見えるエイリアスを作成しています

Executing SQL script from class path resource [mydb/create-schema.sql] 
Done executing SQL script from class path resource [mydb/create-schema.sql] in 107 ms. 
Executing SQL script from class path resource [mydb/create-sequences.sql] 
Done executing SQL script from class path resource [mydb/create-sequences.sql] in 403 ms. 
Executing SQL script from class path resource [mydb/create-tables.sql] 
Done executing SQL script from class path resource [mydb/create-tables.sql] in 3844 ms. 
Executing SQL script from class path resource [mydb/create-views.sql] 
Done executing SQL script from class path resource [mydb/create-views.sql] in 2118 ms. 
Executing SQL script from class path resource [mydb/MY_TABLE.sql] 
Done executing SQL script from class path resource [mydb/MY_TABLE.sql] in 1380 ms. 

... DBは、この時点で完全にロードされるコンソール出力を示し、リスに...

enter image description here

私は接続を作成することができますが、リスは、スキーマ+テーブルをロードすることができないように思えます。

enter image description here

私はここで間違って何をやっているのでしょうか?

答えて

1

埋め込みインスタンスに複数のJVMプロセスからアクセスさせることはできません。 URLにcreate = trueがあるので、Squirrelクライアント用の別の組み込みデータベースが作成されました。

詳細については、this answerを参照してください。

+0

興味深いことに、何かが起こっていたような気分でした。 – Jason

+0

組み込みデータベースをマウントできるJVMインスタンスは1つだけです。同時に2つのデータベースサーバーが同じデータベースオンディスクを管理しようとしているとします。それは同じ考えです。 – Bill

関連する問題