2014-03-27 26 views
1

首先我使用這種方式如何獲得連接,一切都很好。如何在ClientDataSource中設置內存中的數據庫?

con = DriverManager.getConnection("jdbc:derby:memory:datab;create=true"); 

但現在我必須將它更改爲數據源,我如何找出德比有該類ClientDataSource,但地獄,我不能找出如何設置虛擬DB在JUnit測試。

ClientDataSource ds = new ClientDataSource(); 
con = ds.getConnection(); 
+0

前請參閱https://db.apache.org/derby/papers/DerbyClientSpec.html – 2014-03-27 11:17:38

+0

我讀了所有,但我沒有發現。 – Slapy

+0

您在使用Derby的環境是什麼?獨立,應用程序服務器,單元測試,...? – 2014-03-27 11:20:51

回答

0

因爲我發現我的谷歌搜索在這個問題:

答案是使用EmbeddedDataSource代替ClientDataSource,並保持了「記憶:」前綴數據庫名

import org.apache.derby.jdbc.EmbeddedDataSource; 
... 
EmbeddedDataSource ds = new EmbeddedDataSource(); 

ds.setDatabaseName("memory:" + "datab"); 
ds.setCreateDatabase("create"); 
ds.setUser("user"); 
ds.setPassword("pwd"); 
相關問題